是什么字符*意味着

问题描述:

所以......说我有这样的功能...是什么字符*意味着

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:// *。com/questions/897366/how-do-pointer-to-pointers-work-in-c) – 2017-05-03 03:00:11

这意味着这是一个指向char类型数据的指针。

+0

“char类型的指针”是一个不寻常的术语,也许有点混乱。 “指向char的指针”,甚至“类型指向char的指针”会更好。为更好地清晰起见,适当更新了 – 2011-04-19 19:35:00

+0

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

这意味着参数应该是一个字符的pointer

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

这是一个指向角色的指针。你可能想要阅读关于C语言的指针,那里有大量的页面帮助你做到这一点。例如,http://boredzo.org/pointers/

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

那是一个pointer-to-char。现在你知道了,你应该阅读:

About character pointers in C

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)所没有的。