那么...假设我有这样一个函数...
int function( const char *c )
{
//do something with the char *c here...
}
char *c
是什么意思?我大概知道字符的一般含义,但是不明白 * 是什么意思,以及它如何改变含义。
char *c
表示 c 是一个指针。c 指向的值是一个字符。
所以你可以这样说 char a = *c
。
另一方面,const
在这个例子中表示 c 指向的值不能被改变。
所以你可以这样说 c = &a
,但你不能这样说 *c = 'x'
。如果你想要一个指向常量字符的常量指针,你需要这样写:const char* const c
。
指向字符的指针。也就是说,它保存了一个字符所在的地址。
这是一个指向 char
类型的指针。例如,此函数可以获取 char 的地址并修改 char,或者复制指向字符串的指针。这就是我的意思:
char c = 'a';
f( &c );
这将传递c
的地址,以便函数能够更改c
字符。
char* str = "some string";
f( str );
这将“some string”传递给f
,但f
无法修改str
。
对于C++来说,这是非常基础的事情,但高级语言(例如Java或Python)却没有。