char ch[]=' i amhandsome';char *p=ch; 问 *(p+2)和*p+2的结果是多少 哪位大神解释一下?

1. C程序的基本构成单位是(C )

A)字符串常量B)字符常量C)变量D)函数

3. 在C语言中,“a=b=c=5”属于哪种表达式?(B )

5. 若有以下变量定义:

则表达式“a/b”之值为( A )

7. 以下只能输入单个字符的函数是(C )

8. 若a的原值为4,则表达式“a*=a-=3”运算后,a的值是(D )

以下错误的C语言表达式是(C )

11. 下列能输出字符数组str中字符串的语句是(B )

12. 若p=&x,则下列关系表达式之值为1的是(B )

题王网让考试变得更简单

扫码关注题王,更多免费功能准备上线!

程序共有两次循环:
第一次循环,p指向数组a的首地址,所以打印%s时打印出1,打印%s(字符串)时打印出1234;
第二次循环,p偏移2个单位,指向3,所以打印%s时打印出3,打印%s(字符串)时打印出34;
所以程序打印出它们的组合:
for 循环里面第一次循环
p 指向 a 的首地址,因此*p为'1',p打印的字符串是"1234",然后p=p+2,p指向a[2]的地址
for 循环里面第一次循环
p 指向 a[2] 的地址,因此*p为'3',p打印的字符串是"34"
所以结果是
a[] 在声明并定义的时候使用,给数组初始化"1234",因此系统会自动给a[]加上数组大小5进去,相当于char a[5]

我要回帖

更多关于 signed char和char 的文章

 

随机推荐