有一个程序:
#include<stdio.h>
int main()
{
char str[20] = "Hello";
char *const p=str;
*p='M';
printf("%s\n", str);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这打印Mello作为答案..但由于p是一个常量指针,它不应该给出错误吗?
eme*_*esx 14
它确实是一个特殊的指针.你不能改变它指向的地方.你可以改变它指出的东西.
const char *p; // a pointer to const char
char * const p; // a const pointer to char
const char * const p; //combined...
Run Code Online (Sandbox Code Playgroud)
记住语法的最简单方法是根本不记住它.只需阅读从右到左的声明 :-)