求解一道C语言程序题~~
structstr1{char*s;charc[5];};main(){structstr1s1[2]={"ABCD","EFGH","IJK","LMN"};struc...
struct str1{
char *s;
char c[5];
};
main()
{struct str1 s1[2]={"ABCD","EFGH","IJK","LMN"};
struct str2
{struct str1 sr;
int d;
}s2={"OPQ","RST",0};
struct str1 *p[2];
p[0]=&s1[0];p[1]=&s1[1];
printf ("%s",++(*(p+1))->s;
printf("%c",s2.sr.c[2]);} 展开
char *s;
char c[5];
};
main()
{struct str1 s1[2]={"ABCD","EFGH","IJK","LMN"};
struct str2
{struct str1 sr;
int d;
}s2={"OPQ","RST",0};
struct str1 *p[2];
p[0]=&s1[0];p[1]=&s1[1];
printf ("%s",++(*(p+1))->s;
printf("%c",s2.sr.c[2]);} 展开
2个回答
展开全部
这道题主要牵涉到指针:
1)第一个printf 的值:
有 struct str1 *p[2];
p[0]=&s1[0];p[1]=&s1[1];
可得到*(p+1)指向s1[1](即 "IJK","LMN")。
又因为 ++ (*(p+1))->s意思是指向字符串 "IJK" 的指针自增1,所以打印值为 JK
2)第二个printf的打印值:
有 struct str2
{
struct str1 sr;
int d;
}s2={"OPQ","RST",0}; 和 s2.sr.c[2] 是指向字符串 "RST" 的第三个字符 T,(因为数组从0开始,c[2]为第三个字符),即结果为 T。
故输出为 JKT
1)第一个printf 的值:
有 struct str1 *p[2];
p[0]=&s1[0];p[1]=&s1[1];
可得到*(p+1)指向s1[1](即 "IJK","LMN")。
又因为 ++ (*(p+1))->s意思是指向字符串 "IJK" 的指针自增1,所以打印值为 JK
2)第二个printf的打印值:
有 struct str2
{
struct str1 sr;
int d;
}s2={"OPQ","RST",0}; 和 s2.sr.c[2] 是指向字符串 "RST" 的第三个字符 T,(因为数组从0开始,c[2]为第三个字符),即结果为 T。
故输出为 JKT
--
2022-12-05 广告
2022-12-05 广告
图形化编程简单理解为用积木块形式编程,scratch和python也是其中的一种,属于入门级编程,以其简单生动的画面获得无数学生的喜爱,深圳市创客火科技有限公司是一家做教育无人机的公司,旗下有编程无人机,积木无人机及室内外编队,每款飞机含有...
点击进入详情页
本回答由--提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询