所以...说我有一个像这样的功能...
int function( const char *c )
{
//do something with the char *c here...
}
char *c是什么意思? 我想我大致了解chars,但是我不知道*的作用...或它如何改变含义。
它是一个指针。 您需要从一本书或一堂讲座中学到这一点,如果您还不了解的话,就不能用几行来解释。
指针的指针如何在C中工作的可能重复项?
char *c表示c是一个指针。 c指向的值是一个字符。
所以你可以说char a = *c。
另一方面,在本示例中,const表示值c指向不能更改。
所以您可以说c = &a,但不能说*c = 'x'。如果要使用指向const字符的const指针,则必须说const char* const c。
这意味着这是指向char类型数据的指针。
" char类型的指针"是不常见的术语,也许有点令人困惑。"指向char的指针",甚至"指向char的类型的指针"会更好。
已适当更新,以提高清晰度。 谢谢。
多数民众赞成在pointer-to-char。现在您已经知道了,您应该阅读以下内容:
关于C语言中的字符指针
指向字符的指针。也就是说,它保留了char所在的地址。
这是指向字符的指针。您可能想阅读有关C语言中的指针的信息,那里大约有不计其数的页面可以帮助您实现这一目标。例如,http://boredzo.org/pointers/。
这是指向char类型的指针。例如,此函数可以使用char的地址并修改char或指向字符串的指针的副本。这就是我的意思:
char c = 'a';
f( &c );
这将传递c的地址,以便函数可以更改c字符。
char* str ="some string";
f( str );
这会将"某些字符串"传递给f,但是f无法修改str。
对于c ++来说,这是非常基本的东西,而高级语言(例如Java或Python)则没有。
http://cslibrary.stanford.edu/是我了解C语言中的指针的最佳资源。阅读所有与指针相关的pdf文件,并观看笨拙的指针视频。
您可能需要阅读Const正确性页面,以更好地了解指针和const。
这意味着参数应该是指向字符的指针。
您也可以使用*取消引用它。