是C吧。
第5行是数组赋值,不要带[3],string[3]仅表示第3个元素,string才表示整个数组。
况且string[3]已经越界了。
你贴的那段BCB代码是声明和赋值同时,所以可以,也就是说:
正确一:int a[3] = {1,2,3}
正确二:int a[3]; a[0]=1; a[1]=2; a[2]=3;
错误 :int a[3]; a[3]={1,2,3}
废话这么多,可以给分了吧:)
第5行是数组赋值,不要带[3],string[3]仅表示第3个元素,string才表示整个数组。
况且string[3]已经越界了。
你贴的那段BCB代码是声明和赋值同时,所以可以,也就是说:
正确一:int a[3] = {1,2,3}
正确二:int a[3]; a[0]=1; a[1]=2; a[2]=3;
错误 :int a[3]; a[3]={1,2,3}
废话这么多,可以给分了吧:)
什么也不是。
string a[3]={a1,a2,a3}才对吧!
所以你的第5行应该是
char *string[3]={a1,a2,a3};
而且注意前面不要定义char **string;
string={a1,a2,a3};
这种付值语句的,这不是合法的语句。string[3]={a1,a2,a3};就更是一个错误,同意ab。
char a2[]="oiop";
char a3[]="ocidjf";
char string[]={a1,a2,a3};
这样应该也是可以的!
char a2[]="oiop";
char a3[]="ocidjf";
char string[][]={a1,a2,a3};
这样应该也是可以的!
sorry! 少了一个[]