printf的使用_chris

<span style="font-size:18px;">    int main()  
    {  
        int arr[] = {6,7,8,9,10};  
        int *ptr = arr;  
        *(ptr++) += 123;  
        printf("%d ,%d/n",*ptr,*(++ptr));  
        return 0;  
    }  
    //结果为 8  8  </span>

解释如下:

1.
int arr[]={6,7,8,9,10};
int *ptr=arr;//现在ptr指向6
*(ptr++)+=123;//现在ptr指向7,第一个元素变为129
printf("%d,%d",*ptr,*(++ptr)); //考虑从右往左计算,先是*(++ptr),现在ptr指向8,然后*ptr也是8,输出8,8

2.
printf的参数,函数printf从左往右读取,然后将先读取放到栈底,最后读取的放在栈顶,处理时候是从栈顶开始的,所有从右边开始处理的。


posted @ 2014-10-02 14:31  chrispauls  阅读(144)  评论(0编辑  收藏  举报