所以......說我有這樣的功能...是什麼字符*意味着
int function(const char *c)
{
//do something with the char *c here...
}
是什麼char *c
是什麼意思?我知道一般我認爲的字符,但我不明白*做什麼或者它如何改變它的含義。
所以......說我有這樣的功能...是什麼字符*意味着
int function(const char *c)
{
//do something with the char *c here...
}
是什麼char *c
是什麼意思?我知道一般我認爲的字符,但我不明白*做什麼或者它如何改變它的含義。
這意味着這是一個指向char類型數據的指針。
「char類型的指針」是一個不尋常的術語,也許有點混亂。 「指向char的指針」,甚至「類型指向char的指針」會更好。爲更好地清晰起見,適當更新了 – 2011-04-19 19:35:00
。謝謝。 – 2011-04-19 19:52:30
這意味着參數應該是一個字符的pointer。
您也可以使用*
來解除引用。
這是一個指向角色的指針。你可能想要閱讀關於C語言的指針,那裏有大量的頁面幫助你做到這一點。例如,http://boredzo.org/pointers/。
指向char的指針。也就是說,它保存了char所在的地址。
那是一個pointer-to-char
。現在你知道了,你應該閱讀:
char *c
意味着c是一個指針。 c指向的值是一個字符。你可以說char a = *c
。
const
另一方面,在這個例子中說c值指向的值不能被改變。 所以你可以說c = &a
,但是你不能說*c = 'x'
。如果你想要一個const指針指向一個const字符,你必須說const char* const c
。
您可能想要閱讀Const correctness頁面以獲取指針和常量的一個好主意。
http://cslibrary.stanford.edu/是我遇到過的關於C中指針的最佳資源。閱讀所有指針相關的pdf文件,並觀看binky指針視頻。
這是指向char
類型的指針。例如,此函數可以獲取char的地址並修改char或指向字符串的指針副本。這就是我的意思是:
char c = 'a';
f(&c);
此經過的c
的地址,這樣的功能將能夠改變c
字符。
char* str = "some string";
f(str);
這種通過 「一些字符串」 到f
,但f
不能修改str
。
對於C++來說,這是一個非常基本的東西,即更高級的語言(比如Java或Python)所沒有的。
這是一個指針。你需要從書本或演講中學到這些,如果你還沒有理解它,那麼就不能用幾行來解釋。 – bdares 2011-04-19 01:47:29
[指針指向C指針的工作方式?](http:// stackoverflow。com/questions/897366/how-do-pointer-to-pointers-work-in-c) – 2017-05-03 03:00:11