欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C语言的输出问题

程序员文章站 2022-06-23 14:53:07
#include int main(){/*总结1.在c语言中的printf语句中,数据的处理时按照从左往右的入栈进行输出的2.如果是++i或者i的话就先不入栈,等运行到最后在入栈3.如果是i++的话就先入栈*/ int k=6;printf("%d,%d",k++,k++);/*先如栈6,然后入栈7,按照栈的顺序先进后出,所以输出顺序是7 6*/printf("\n");printf("%d,%d",++k,++k);...

C语言的输出问题
下面是我个人经过查阅资料后的个人理解

#include <stdio.h>

int main()
{
	/*总结
	1.在c语言中的printf语句中,数据的处理时按照从左往右的入栈进行输出的
	2.如果是++i或者i的话就先不入栈,等运行到最后在入栈
	3.如果是i++的话就先入栈
	*/
   int k=6;
	printf("%d,%d",k++,k++);
	/*
		先如栈6,然后入栈7,按照栈的顺序先进后出,所以输出顺序是7 6
	*/
	printf("\n");
	printf("%d,%d",++k,++k);
	/*
		因为是++k,先不如栈,把所有的++k执行完后在如栈,
		也就是10
		按照栈的顺序先进后出,所以输出顺序是10 10
	*/
	printf("\n");
	int d=1;
	printf("%d,%d,%d",d++,++d,d);
	/*
		因为开头是d,所以继续下一条++d,也先不入栈,然后是d++,也就是2先入栈,然后3 3依次如栈
		然后按顺序就是2 3 3
	*/
	printf("\n");
	int a=0;
    int b=0;
    int c=0;
    printf("a=%d,a=%d,a=%d\n",a,++a,a);
    printf("b=%d,b=%d,b=%d\n",++b,b,b++);
    printf("c=%d,c=%d,c=%d\n",c++,++c,c);
	/*
		1.因为是都是a和++a,所以都先不如栈,全部运算完后依次入栈,也就是 1 1 1,
		2.b++先入栈,也就是0先如栈,然后是b和++b,执行完后依次如栈,也就是2 2 0
		3.c和++c先不如栈,然后c++如栈,也就是1先如栈,然后依次如栈后就是1 2 2
	*/

}

本文地址:https://blog.csdn.net/P_ning/article/details/108985286

相关标签: 学习