早教吧 育儿知识 作业答案 考试题库 百科 知识分享

关于c赋值#includemain(){\x05intb=3;\x05intarr[]={6,7,8,9,10};\x05int*ptr=arr;\x05*(ptr++)+=123;\x05printf("%d,%d,%d\n",*(ptr-1),*ptr,*(++ptr));}这个题目为什么*(ptr-1)为7,当*(ptr-1)移到最后printf("%d,%d,%d\n",*ptr,*(++ptr),

题目详情
关于c赋值
#include
main()
{
\x05int b=3;
\x05int arr[]={6,7,8,9,10};
\x05int *ptr=arr;
\x05*(ptr++)+=123;
\x05printf("%d,%d,%d\n",*(ptr-1),*ptr,*(++ptr));
}
这个题目为什么*(ptr-1)为7,当*(ptr-1)移到最后printf("%d,%d,%d\n",*ptr,*(++ptr),*(ptr-1));又变成129,怎么回事?
▼优质解答
答案和解析
*(ptr++)+=123; 将数组arr[]首位变成6+123=129,同时*ptr指向数组元素7.printf("%d,%d,%d\n",*(ptr-1), *ptr,*(++ptr)); Turbo C中printf从右向左分别求值,那么输出结果应该为7,8,8.不知道结果是不是这样?如果*(pt...