首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C的小疑点~求教

2012-03-05 
C的小问题~~求教#includestdio.hmain(){int arr[] {6,7,8,9}int *p arr*(p++) 123printf(%d,%d

C的小问题~~求教
#include<stdio.h>

main()
{
  int arr[] = {6,7,8,9};
  int *p = arr;
  *(p++) = 123;
  printf(%d,%d\n,*p,*(++p));
}

输出正确结果是8,8 ,可我不明白为什么是这个??求解。。

[解决办法]
main()
{
int arr[] = {6,7,8,9};
int *p = arr;//p此时指向arr[0]
*(p++) = 123;//运行后arr[0] = 123, p = &arr[1]
printf(%d,%d\n,*p,*(++p));//传参时从右向左,所以先执行*(++p),p == &arr[2] , *p == 8
}

其实这个答案不是一定的,结果是8,8,就说明了printf参数传递时从右向左,但是这个顺序不是一定的

热点排行