输出结果卜冲卖为:
a=#,b=#,c=
,d=n
不过楼主这个话的a前判镇面少了个逗型逗号,应该是:
printf("a=%c,b=%c,c=%c,d=%c\n",a,b,c,d)
s=s1 //s指向s1while(*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])
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)