int main(){
char *str = "stuff";
printf("%p\n", str);
printf("%c", *str+1);
return 0;
}
这段代码我能理解的是,char是字符类型,代表单个字符,*str指向字符串数组的第一个字符's',所以是能理解,就像直接给int指针赋值一个int数组。
我不能理解的是,int *p = 1;是不行的,因为1是一个数值,不是地址。
但是下面这个char *str = "stuff";为什么可以啊,为什么啊。
如果写成下面这个我是能理解,为什么上面这个能成立啊T.T,这给"stuff"这个字符串分配内存了吗?
int main(){
char s[ ] = "stuff";
char *str = NULL;
str = s;
printf("%p\n", str);
printf("%c", *str+1);
return 0;
}