`

printf语句从右向左编译

    博客分类:
  • C
阅读更多
编译的时候确实是从右向左的。输出的时候再从左向右。
如你给的题应该是a=2所以输出是2
又如
int i=8;
printf("%d\n%d\n%d\n%d\n",++i,--i,i++,i--);
写在一起的时候程序器是从右向左计算的。也就是说
i-- ----8,i=7
i++ ----7,i=8
--i ----7,i=7
++i ----8,i=8
然后反向输出,就是8,7,7,8.
例如下面这个典型例子
#include <stdio.h>


int main()
{
    unsigned int a[] = {1, 2, 3, 4};
    unsigned int *pd;

    pd = a;
    printf("%d, %d\n",*pd++, *pd++);
    return 0;
}

答案是:2,1
分享到:
评论

相关推荐

    C语言程序设计标准教程

    不同的编译系统不一定相同,可以从左到右, 也可从右到左。Turbo C是按从右到左进行的。如把例2.13改写如下述形式: void main(){ int i=8; printf("%d\n%d\n%d\n%d\n%d\n%d\n",++i,--i,i--,i++,-i--); } i 这个...

    二级C语言 第三章 基本语句.doc

    在`printf`函数中,输出项的运算顺序是从右向左的,但不同编译系统可能有所不同。`printf`函数可以不带输出项,只输出格式控制串中的普通字符。 `scanf`函数则用于从标准输入设备(通常是键盘)读取数据。它也接受...

    回文游戏(数据结构 c语言编译 )

    回文是一种特殊的字符串形式,它从左向右读和从右向左读是完全相同的。例如,“aba”、“madam”都是典型的回文串,而“abc”则不是。在计算机科学领域,判断一个字符串是否为回文是一个常见的问题,它可以用于测试...

    C语言教程第4章1PPT学习教案.pptx

    包括条件语句(`if-else`)、循环语句(`for`, `while`, `do-while`)、`continue`(结束当前循环迭代)、`break`(跳出当前循环或`switch`语句)、`switch`(多分支选择)、`goto`(无条件跳转)和`return`(从函数...

    C语言编程技术实践2020版 常见编译错误与调试文档12.doc

    左移`操作会使二进制位向左移动指定的位数,溢出的部分会被丢弃,因为`char`变量的大小有限。同样,输出时使用`%x`格式化字符串以十六进制形式显示变量`b`的值。 3. **位移运算符的行为** 代码清单12.5展示了`&gt;&gt;`...

    C语言版俄罗斯方块 vc++6.0编译通过

    游戏开始时,方块会从屏幕顶部随机生成并向下移动,玩家可以通过左右移动和旋转来控制方块的落点。当一行被填满时,该行会消失,同时上方的方块会下移,以此类推。游戏的目标是尽可能长时间地保持游戏状态,避免游戏...

    c语言考点总结

    例如,`a = b = c`这样的赋值语句从右向左计算。 **C语言基础知识详解**: 1. **源程序**:C语言程序是源程序,由ASCII字符组成的文本文件。编译后生成的目标文件(.obj)和最终的可执行文件(.exe)才能被执行。 ...

    C语言基础教程英文PPT课件PPT学习教案.pptx

    所有`=`运算符具有相同的优先级,并且具有右到左的关联性,意味着从右向左依次计算。 4. **隐式类型转换(Implicit Type Conversions)**:在C语言中,数据类型的转换会在赋值操作符两侧自动进行。例如,当一个`...

    C语言课件(谭浩强):第六章 函数.ppt

    C语言中的参数求值顺序可能因编译器不同而异,但在示例中,Turbo C是从右向左进行的。 函数调用是C程序中不可或缺的一部分,它允许程序在运行时动态地执行不同的代码块,从而实现灵活的程序结构。正确理解和运用...

    武汉大学计算机学院02级编译原理.docx

    - 要求构造一个文法,生成包含双目运算符 + 和 * 的表达式,其中 + 的优先级高于 *,+ 采用右结合,* 采用左结合。 - 构造文法如下: - \(G[E]=({+,*,(,),i},{E,F,T},P,E)\),其中 P 为: - \(E \rightarrow E*F|F\...

    全国计算机二级考试C语言常考知识点归纳.pdf

    7. **运算符优先级**:逗号运算符的优先级最低,同一优先级的运算符有的是从左到右计算,有的是从右到左。 8. **类型转换**:强制类型转换用括号表示,如(int)a表示将a转换为int类型。注意(int)(a+b)和(int)a+b的...

    顺序结构程序设计(共65张PPT)精选.pptx

    `scanf()`函数用于从键盘或其他输入设备读取数据,`printf()`函数用于向屏幕或其他输出设备打印数据。 ```c #include int main() { int num; printf("请输入一个整数: "); scanf("%d", &num); printf("你输入...

    重庆市二级C语言基础知识点.pdf

    :`具有右结合性,从右向左结合。`switch`语句根据表达式值匹配`case`,遇到`break`或执行完最后一个语句后结束。`default`语句提供未匹配情况的入口。 九、循环结构 `while`循环在满足条件时执行循环体,`do......

    卡号校验(C语言实现)

    1. **Luhn算法**:这是最常见的一种校验算法,它要求从右向左遍历卡号,偶数位置的数字乘以2(如果乘积超过9则减去9),然后将所有位置的数字相加,如果这个和能被10整除,则卡号有效。 2. **C语言编程基础**:要...

    清华大学C语言PPT学习教案.pptx

    - 输入输出在计算机术语中指的是从外部设备读取数据和向设备发送数据。 - C语言中并没有内置的输入输出语句,而是通过标准库函数实现,比如`printf`和`scanf`。 - `#include`预编译命令用于将头文件(如)包含到...

    C语言基础复习大全(精品)[定义].pdf

    10. **运算符优先级**:逗号运算符具有最低优先级,同级别的运算符遵循从左到右或从右到左的结合性。 11. **类型转换**:强制类型转换用括号表示,如`(int)a`,注意区分`(int)(a+b)`和`(int)a+b`的区别。 12. **...

    c语言常见知识点

    逗号运算符的优先级最低,多个操作符并列时,从右向左计算。 合法的用户标识符由字母、数字和下划线组成,首字符不能是数字。实型数据如2.333e-1表示2.333乘以10的负一次方。字符数据用单引号包围,如'1',而字符串...

    C语言100例C语言100例.docx

    【程序30】此程序的目的是判断一个5位数是否为回文数,即从左向右读和从右向左读都相同的数字。它同样使用了类似的数字分解方法,然后比较各个位置的数字是否相等。 1. 通过分别获取个位(ge)、十位(shi)、千位...

Global site tag (gtag.js) - Google Analytics