1.字符串初始化是否会在结尾添\0的问题
1.1
char str1[] ="12345";
会自动在结尾处加上'\0'
1.2
char *str1 = "12345";
会加上'\0';
1.3
char str1[] = {'1','2','3','4','5'};
不会加上'\0'
2字符串名sizeof的大小
char p[] = "hello"
sizeof(p) =6; 计算数组的大小
扫描二维码关注公众号,回复:
1306624 查看本文章
char *p = "hello"
sizeof(p) = 4; 计算指针的大小
3.二维数组的首地址
int a[3][4];
a + 1 = a + 4*sizof(int);
&a + 1 = a + 12*sizof(int);
4. char str[]=”wuhao”和 char *str=”wuhao”的区别
4.1char str[] = "wuhao";
"wuhao" 存储在堆或者栈中.因此可以对单个值进行修改
Str[1] = ‘a’; //正确
Str[] = “guliangjin”//错误,数组只能在初始化整体赋值,在之后都不能再整体赋值
4.2 char *str = "wuhao";
"wuhao" 这种定义方式为字符串常量,存储在静态数据区. Str[1] = ‘a’; //错误, 不能改变常量的值.
Str = “guliangjin”//正确,指针变量str并不是常量,所以可以更改指向的地址