69,336
社区成员
发帖
与我相关
我的任务
分享
char text[20] ="fengkewei";
const char *p ; //不管是p指向的内容还是p本身 都可以改
//就算给
p =(char *)malloc(100);
p = text; //一样可以
感觉跟char *p 没区别;
****************************************************************
如果是char * const p
char text[20] ="fengkewei";
char text1[20] ="sldkfj";
char * const p = text; //必须初始化 否则出错
p = text1; //出错 本身内容不可以修改
strcpy(text, text1); //可以修改 但修改的只是text的内容 text的地址并没有改变
printf("%s\n", p);
****************************************************************************
char text[20] ="fengkewei";
char text1[20] ="sldkfj";
char * const p = (char *)malloc(100); //这样初始化也可以
strcpy(p, text1); //而且可以对其修改内容 因为修改的是堆的内容 并没有对p的内容(堆的地址)进行改变
printf("%s\n", p);
#include <stdio.h>
int main(void)
{
char a[] = "abcdefg";
const char *p = a;
*p = 'a';
return 0;
}
main.c:8: warning: assignment of read-only location
char text[20] ="fengkewei";
char text1[20] ="sldkfj";
char const *p; //不需要初始化
p = text; //p指向
text[0] = '1'; //p指向的内容可以修改
printf("%s\n", p);
char text[20] ="fengkewei";
char text1[20] ="sldkfj";
char const *p; //不需要初始化
p = text; //p指向
p[0] = '1'; //你不能通过已经限定过的char const *p 进行修改 注意这里出现的错误是编译错误 不是内存错误 也就是说 不是文字常量区的错误
printf("%s\n", p);
const char text[20] ="fengkewei";
char const *p;
p = text;
p[0] = '1';
printf("%s\n", p);