无法从“char [2][10]”转换为“char *”
源程序为:#include <stdio.h>
void main()
{char str[ ][10]={"China","Beijing"},*p=str;
printf("%s\n",p+10);
}
编译时,出错,提示为:1>f:\c_sharp_project\逗号运算符\逗号运算符\001.cpp(38): error C2440: “初始化”: 无法从“char [2][10]”转换为“char *”
我用的VS2010.
[解决办法]
char **p=str;
[解决办法]
[code=C/C++][/code]
char str[][10]={"China","Beijing"},(*p)[10]=str;
printf("%s\n",p+1);
输出结果:Beijing
[解决办法]
楼主你要是想编译通过的话,把文件.cpp改成.c,然后就行了,vs里面.cpp文件用的是c++的编译器,.c文件用的是c语言的编译器。
但是你直接*p = str;这样并不是把char[2][10]转换成了char * ,
2楼的写法很好。,(*p)[10]=str;改成这样然后printf("%s\n",p+1);
[解决办法]
:#include <stdio.h> void main() { char str[ ][10]={"China","Beijing"}; char *p=str; //左右类型不匹配 -->> char (*p)[10]=str; printf("%s\n",p+10); // p+10 --->> p+1 }
[解决办法]