首先我们先看下面的一串代码:
int main() {
char* p = "abcdef";
printf("%s\n", p);
return 0;
}
这串代码打印的会是什么呢?
正确结果如下:
原因是什么呢?
我们可以这么理解,字符串“abcde”可以看为一个字符数组即:
char arr[]={a,b,c,e,d,'\0'};
而在p里面存放的其实也就是字符串的首地址,也可以理解为arr数组的首地址。
以上就是我的理解了,希望对你有帮助!