C语言的printf函数以从右到左的顺序输出,每个数据项可以进行算术但各自互不影响
2012-08-23 22:23
736 查看
今天在一个网站上看到有个冒泡排序算法,最后的输出prinf输出函数如:
突然记得在什么地方看过一种说法,C语言的输出是从右到左的,但具体却很模糊,下班回来之后就试了一下,代码如下:
输出结果如下:
个人总结了下:
C语言的编译器以压栈式存储的,所以输出时是从栈顶往栈底读取数据的,但我们看到在用printf输出时,是从右往左进行的,而且每一项可以运算,但各项的运算结果互不影响,但对变量本身来说是每次计算都会改变它的值的。
冒泡算法中的交换数据的方法很经典,算法我也贴出来吧;
printf("%c",a[i],a[i]);
突然记得在什么地方看过一种说法,C语言的输出是从右到左的,但具体却很模糊,下班回来之后就试了一下,代码如下:
#include <stdio.h> int main() { int b = 4; printf("%d,%d",++b,b++); printf("\n"); printf("%d",b); printf("\n"); int a[3] = {1,2,3}; int i = 0; printf("%d,%d",a[++i],a[++i]); printf("\n"); printf("%d",i); printf("\n"); return 0; }
输出结果如下:
个人总结了下:
C语言的编译器以压栈式存储的,所以输出时是从栈顶往栈底读取数据的,但我们看到在用printf输出时,是从右往左进行的,而且每一项可以运算,但各项的运算结果互不影响,但对变量本身来说是每次计算都会改变它的值的。
冒泡算法中的交换数据的方法很经典,算法我也贴出来吧;
#include<stdio.h> #define NUM 10 int main() { int a[NUM] = {35,32,43,55,66,123,33,44,65,76}; int i ,j; for(i = 0; i < NUM; i++) for(j = 0; j < NUM-1;j++) if (a[j] > a[j+1]) { a[j]^ = a[j+1]; a[j+1]^ = a[j]; a[j]^ = a[j+1]; } for (i = 0; i < NUM; i++) printf("%c",a[i],a[i]); return 0; }
相关文章推荐
- C语言printf函数输出表达式中的计算顺序
- C语言printf函数输出表达式中的计算顺序
- C语言printf函数输出表达式中的计算顺序
- 怎样在TI stellaris lm3sxxx 程序中使用C语言printf()函数进行串口输出
- C语言printf函数输出表达式中的计算顺序
- C语言中printf格式化输出函数
- C语言中printf格式化输出函数
- C语言中如何用printf函数输出百分号?
- 关于printf函数输出先后顺序的讲解!!
- C语言中printf格式化输出函数
- C语言标准输出函数 printf()
- C笔记01:关于printf函数输出先后顺序的讲解
- C语言中printf格式化输出函数(转载)
- C语言格式输出函数printf()详解
- printf函数对参数的计算顺序,是从右往左的(输出是从左向右的)
- 关于printf函数输出先后顺序的讲解!!
- 关于C语言中printf函数的参数执行顺序
- 29_用scanf和printf函数进行输入和输出.cpp
- C语言输出函数(printf)和输入函数(scanf)
- c语言printf()函数格式化输出