int main()
{
int buf [10] = {1,2,3,4,5,6,7,8,9,10};
int current=0;
printf("first byte is %d, second byte is %d \n",buf[current++], buf[current++]);
printf("third byte is %d, fourth byte is %d \n",buf[current++], buf[current++]);
/**
* attentions !!!!
* the result we want is :
* first byte is 1, second byte is 2
* third byte is 3, fourth byte is 4
* but actually , the output is like this :
* first byte is 2, second byte is 1
* third byte is 4, fourth byte is 3
* so the sequence(pushed into stack) of the
* parameters of printf is from right to left .
**/
}
本文通过一个简单的C语言程序示例,展示了printf函数参数的实际传递顺序为从右到左的特点,并解释了这一现象的原因。
1万+

被折叠的 条评论
为什么被折叠?



