2011-04-19 57 views
3

所以......說我有這樣的功能...是什麼字符*意味着

int function(const char *c) 
{ 
//do something with the char *c here... 
} 

是什麼char *c是什麼意思?我知道一般我認爲的字符,但我不明白*做什麼或者它如何改變它的含義。

+2

這是一個指針。你需要從書本或演講中學到這些,如果你還沒有理解它,那麼就不能用幾行來解釋。 – bdares 2011-04-19 01:47:29

+0

[指針指向C指針的工作方式?](http:// stackoverflow。com/questions/897366/how-do-pointer-to-pointers-work-in-c) – 2017-05-03 03:00:11

回答

4

這意味着這是一個指向char類型數據的指針。

+0

「char類型的指針」是一個不尋常的術語,也許有點混亂。 「指向char的指針」,甚至「類型指向char的指針」會更好。爲更好地清晰起見,適當更新了 – 2011-04-19 19:35:00

+0

。謝謝。 – 2011-04-19 19:52:30

1

這意味着參數應該是一個字符的pointer

您也可以使用*來解除引用。

2

這是一個指向角色的指針。你可能想要閱讀關於C語言的指針,那裏有大量的頁面幫助你做到這一點。例如,http://boredzo.org/pointers/

2

指向char的指針。也就是說,它保存了char所在的地址。

4

char *c意味着c是一個指針。 c指向的值是一個字符。你可以說char a = *c

const另一方面,在這個例子中說c值指向的值不能被改變。 所以你可以說c = &a,但是你不能說*c = 'x'。如果你想要一個const指針指向一個const字符,你必須說const char* const c

1

http://cslibrary.stanford.edu/是我遇到過的關於C中指針的最佳資源。閱讀所有指針相關的pdf文件,並觀看binky指針視頻。

1

這是指向char類型的指針。例如,此函數可以獲取char的地址並修改char或指向字符串的指針副本。這就是我的意思是:

char c = 'a'; 
f(&c); 

此經過的c的地址,這樣的功能將能夠改變c字符。

char* str = "some string"; 
f(str); 

這種通過 「一些字符串」 到f,但f不能修改str

對於C++來說,這是一個非常基本的東西,即更高級的語言(比如Java或Python)所沒有的。