c c string - yaokun123/php-wiki GitHub Wiki
字符串常量存文字常量区,""在使用时,取的是字符串首元素的地址
文字常量区的内容是不能被改变的
#include<stdio.h>
#include<string.h>
int main(){
char a[] = "hello world";
printf("sizeof = %lu\n",sizeof(a));//12
printf("strlen = %lu\n",strlen(a));//11
a[0] = 'm';//这里修改的是数组首元素的值
printf("%s\n",a);
char *p = a;
*p = 'h';//这里修改的还是数组的首元素值
printf("%s\n",p);
p = "abcdef";//改变了指针变量的指向,字符串常量存文字常量区
printf("%s\n",p);
//*p = 'm';//文字常量区的内容是不能被修改的
return 0;
}
const修饰指针,不能通过指针修改指针所指向的空间
#include<stdio.h>
int main(){
char a[] = "hello world";
//const修饰指针,不能通过指针修改指针所指向的空间
const char *p = a;
//*p = 'm';
return 0;
}
#include<stdio.h>
int main(){
char a[] = "hello world";
char * const p = a;//指针变量p初始化之后不能改变p指针变量本身的指向
char b = 'a';
p = &b;
return 0;
}