永发信息网

main() {char s[]="159",*p; p=s; printf("%c",*p

答案:2  悬赏:50  手机版
解决时间 2021-11-30 17:44
  • 提问者网友:饥饿走向夜
  • 2021-11-29 17:00
main() {char s[]="159",*p; p=s; printf("%c",*p
最佳答案
  • 五星知识达人网友:鱼忧
  • 2021-11-29 17:27
char s[]="159";声明字符数组
char *p; 指针
p=s;取s的首地址赋值给指针
printf("%c",*p++);打印首地址字符(1)后,将地址位置+1
pirntf("%c",*p++);打印指针制定字符(5)后,将地址位置+1
全部回答
  • 1楼网友:舊物识亽
  • 2021-11-29 17:36
这个首先要知道后置++运算符和前置运算符的区别,后置++运算符会对操作对象进行一次加一操作,但是返回的是加一之前的那个值,前置++运算符也会对操作对象进行一次加一操作,返回的是加一之后的新值。这个程序中运用的是后置++运算符,初始状态下,p指向字符串的第一个字符"1",在第一句打印语句中的++运算执行后,p指向下一个字符"5",但是printf()方法接收到的返回值是加一操作前的值,也就是“1”,因此第一句执行后会打印输出“1”,第二句printf()方法执行时,指针p指向第二个字符“5”,同样,虽然后置的++运算符对指针进行了加一操作,但是printf()函数接受到的返回值依然是加一操作之前的值,也就是“5”。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯