帮忙看一下这个程序有错误吗?

来源:百度知道 编辑:UC知道 时间:2024/05/25 09:53:16
#include<stdio.h>
main(){
char str[][10]={"china","beijing"},*p=str;
printf("%s\n",p+10);
}

没有错,可以运行出结果,但是p是一维指针,而str是一个二维数组,这样直接char *p=str;不合规范。建议使用为:
#include<stdio.h>
main(){
char str[][10]={"china","beijing"},*p=str[0];
printf("%s\n",p+10);
}

str本质上是数组指针,所以直接p=str类型不符.
应该是char *p=*str;

*p和str类型不一致...
应该写成**p=str吧,
个人感觉是这样的