下面C语言程序的结果是什么

下面C语言程序的结果是什么,第1张

结果

输出结果卜冲卖为:

a=#,b=#,c=

,d=n

不过楼主这个话的a前判镇面少了个逗型逗号,应该是:

printf("a=%c,b=%c,c=%c,d=%c\n",a,b,c,d)

s=s1 //s指向s1

while(*s1!='\0') s1++ //*s1='\0'(其实这纳亮行毫无意义)

while(*s1++=*s2++) //s1,s2都指向的位置后移4位(册袭其实这行毫无意义)

s2=s //s2指向s

while (*s2!='\0') s2++ //s2指向'\0'

printf("%d\n",s2-s)//结果为7(就是"here is"的长度)

好吧,我错了,我去运行了一下,这个代码是错的,不能运行,

while(*s1++=*s2++) 这句是不能运行的,

s1和s2都是赋值到静态文本区(好像是这个洞姿宽名字)的,这里的值是不能改的,所以赋值是出错的。

如果是==,那么就是我之前说的答案了

int arr[]={6,7,8,9,10}// 定义有5个元素的一维数组,数组名指向第一个元素

int *ptr=arr // 定义指针ptr 指梁碧向数组第一个元素

*(ptr++)+=123 // 先运算 *ptr 值为6,再算(空渣山*ptr)自加123,得*ptr=129,即数组第一个数变为129,然后计算ptr++,ptr指向数组第二个元素;

printf("%d,%d",*ptr,*(++ptr))// ++ptr,ptr指向数组第二个元素;然后两次输出 *ptr,结果为 8,8

int arr[]={6,7,8,9,10}

int *ptr=arr

*(ptr++)+=123

printf("%p %d\n", ptr, *ptr)

printf("%p, %d,%d, %p\n",ptr, *ptr,*(++ptr), ptr)

printf("斗中%d %d %d %d %d\n", arr[0], arr[1], arr[2], arr[3], arr[4])


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12518221.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存