C语言二维数组问题
#include"stdio.h"unsignedchardisp[4][16]={"abcdefg","sbhihfeui","bvyhewgdu","yyueg828...
#include"stdio.h"
unsigned char disp[4][16]={"abcdefg","sbhihfeui","bvyhewgdu","yyueg8289eb"};
unsigned char *disp1="dfbvhu";
int main()
{
printf("%s\n",disp1);
printf("%s\n",disp1+1);
printf("%s\n",disp1+2);
printf("==========================\n");
printf("%s\n",*disp);
printf("%s\n",*disp+1);
printf("%s\n",*disp+2);
printf("%s\n",*disp+3);
printf("==========================\n");
printf("%s\n",disp[0]);
printf("%s\n",disp[1]);
printf("%s\n",disp[2]);
printf("%s\n",disp[3]);
printf("==========================\n");
printf("%s\n",*disp);
printf("%s\n",*(disp+1));
printf("%s\n",*(disp+2));
printf("%s\n",*(disp+3));
printf("==========================\n");
printf("%s\n",disp);
printf("%s\n",disp+1);
printf("%s\n",disp+2);
printf("%s\n",disp+3);
return 0;
}
问:*disp+1,disp+1,*(disp+1)分别代表什么
下面是输出结果:
dfbvhu
fbvhu
bvhu
==========================
abcdefg
bcdefg
cdefg
defg
==========================
abcdefg
sbhihfeui
bvyhewgdu
yyueg8289eb
==========================
abcdefg
sbhihfeui
bvyhewgdu
yyueg8289eb
==========================
abcdefg
sbhihfeui
bvyhewgdu
yyueg8289eb
--------------------------------
Process exited after 0.9139 seconds with return value 0
请按任意键继续. . . 展开
unsigned char disp[4][16]={"abcdefg","sbhihfeui","bvyhewgdu","yyueg8289eb"};
unsigned char *disp1="dfbvhu";
int main()
{
printf("%s\n",disp1);
printf("%s\n",disp1+1);
printf("%s\n",disp1+2);
printf("==========================\n");
printf("%s\n",*disp);
printf("%s\n",*disp+1);
printf("%s\n",*disp+2);
printf("%s\n",*disp+3);
printf("==========================\n");
printf("%s\n",disp[0]);
printf("%s\n",disp[1]);
printf("%s\n",disp[2]);
printf("%s\n",disp[3]);
printf("==========================\n");
printf("%s\n",*disp);
printf("%s\n",*(disp+1));
printf("%s\n",*(disp+2));
printf("%s\n",*(disp+3));
printf("==========================\n");
printf("%s\n",disp);
printf("%s\n",disp+1);
printf("%s\n",disp+2);
printf("%s\n",disp+3);
return 0;
}
问:*disp+1,disp+1,*(disp+1)分别代表什么
下面是输出结果:
dfbvhu
fbvhu
bvhu
==========================
abcdefg
bcdefg
cdefg
defg
==========================
abcdefg
sbhihfeui
bvyhewgdu
yyueg8289eb
==========================
abcdefg
sbhihfeui
bvyhewgdu
yyueg8289eb
==========================
abcdefg
sbhihfeui
bvyhewgdu
yyueg8289eb
--------------------------------
Process exited after 0.9139 seconds with return value 0
请按任意键继续. . . 展开
展开全部
该数组看成是4个元素的数组,每个元素又是字饥码符串数组。
*disp+1:指第一个元素("abcdefg")地址往后加1,即“bcdefg“
后两个效果一样,态肢搜其中的加1都是指加上一个元素长度sizeof(disp[i ]),只不过传入打印的时候,前者直接是地址,后者是字符串,也帆历看作是地址。
*disp+1:指第一个元素("abcdefg")地址往后加1,即“bcdefg“
后两个效果一样,态肢搜其中的加1都是指加上一个元素长度sizeof(disp[i ]),只不过传入打印的时候,前者直接是地址,后者是字符串,也帆历看作是地址。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
二维数组与指针的联系:
二维数组困戚埋 <=> 指针
disp[][] <=>汪蚂 **disp
disp[] <=> *disp
disp <=> disp
*disp代表所在列的首地址
disp代表首行首地址,仔洞即*(disp+0)
*disp + 1 代表&disp[0][1]
disp + 1代表&disp[1]
*(disp+1)代表&disp[1][0]
二维数组困戚埋 <=> 指针
disp[][] <=>汪蚂 **disp
disp[] <=> *disp
disp <=> disp
*disp代表所在列的首地址
disp代表首行首地址,仔洞即*(disp+0)
*disp + 1 代表&disp[0][1]
disp + 1代表&disp[1]
*(disp+1)代表&disp[1][0]
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询