分类：电脑/网络-软件
问题：C语言程序题main(){charch[3][4]={"123" 
main()
{
char ch[3][4]={"123","456","78"},*p[3];int i;
for(i=0;i<3;i++) p[i]=ch[i];
for(i=0,i<3;i++) printf("%s",p[i]);
}

请大家详细的教教我这样的题怎么做，谢谢大家。
回答：char ch[3][4]={"123","456","78"},  表示定义一个2维数组，3行4列，并对其进行付初值。  "123" ==>第一行,1=>第一列,2==>第二列,3==>第三列,'\0'==>第四列  "456" ==>第二行 4=>第一列,5=>第二列,6=>第三列,'\0'=>第四列  "78"  ==>第三行 7=>第一列,8=第二列,'\0'=>第三列,第四列值由器决定，一般为0其结果是:   ch[0][0]=1,ch[0][1]=2,ch[0][2]=3, ch[0][3]='\0'   ch[1][0]=4,ch[1][1]=5,ch[1][2]=6, ch[1][3]='\0'   ch[2][0]=7,ch[2][1]=8,ch[2][2]=='\0',ch[1][3]='编译时决定'char *p[3],指定义一个一维字符串指针数组（从左向右看，首先是一个指针*p,然后又是是个数组[3])for(i=0;i<3;i++) p[i]=ch[i];这句话是将指针p[i]指向第i行数据，ch[i]表示第i行的行数据首址，在数字上＝&ch[i][0]，一个静态数据，编译时决定。for(i=0,i<3;i++) printf("%s",p[i]);表示连续输出3个字符串指针所指的内容。%s表示输出对应字符串内容，遇到"\0"表示输出结束('\0'本身不输出).输出内容当然是:12345678  ^_^