我的编程空间,编程开发者的网络收藏夹
学习永远不晚

C语言操作符++和--怎么使用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

C语言操作符++和--怎么使用

本篇内容介绍了“C语言操作符++和--怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

一、++与--操作符的本质

++ 和 -- 操作符对应两条汇编指令

前置

  • 变量自增(减)1

  • 取变量值

后置

  • 取变量值

  • 变量自增(减)1

下面看一段神奇的代码:

#include <stdio.h>  int main(){    int i = 0;    int r = 0;     r = (i++) + (i++) + (i++);     printf("i = %d\n", i);    printf("r = %d\n", r);     r = (++i) + (++i) + (++i);     printf("i = %d\n", i);    printf("r = %d\n", r);     return 0;}

在 VS2012中,它的运行结果如下:

C语言操作符++和--怎么使用

在 gcc 编译器中,它的运行结果如下:

C语言操作符++和--怎么使用

这是由于不同编译器对 ++ 和 -- 的相对哦执行次序不一样。

二、++与-- 操作符使用分析

  • C 语言中只规定了 ++ 和 -- 对应指令的相对执行次序

  • ++ 和 -- 对应的汇编指令不一定连续运行

  • 在混合运算中,++ 和 -- 的汇编指令可能被打断执行

++ 和 -- 参与混合运算结果是不确定的。

笔试面试中的“奇葩”题

C语言操作符++和--怎么使用

贪心法:++,-- 表达式的阅读技巧

  • 编译器处理的每个符号应该尽可能多的包含字符

  • 编译器以从左向右的顺序一个一个尽可能多的读入字符

  • 当读入的字符不可能和已读入的字符组成合法符号为止

下面看一段代码:

#include <stdio.h> int main(){       int i = 0;    int j = ++i+++i+++i;        int a = 1;    int b = 4;    int c = a+++b;        int* p = &a;        b = b/ *p;     printf("i = %d\n", i);    printf("j = %d\n", j);    printf("a = %d\n", a);    printf("b = %d\n", b);    printf("c = %d\n", c);          return 0;}

运行后编译器会报错:

C语言操作符++和--怎么使用

这行代码为什么报错呢?int j = ++i+++i+++i; 原因就是编译器发现 ++i 后由于贪心,会继续往下找,发现 ++i+ 后编译器觉得符合语法规则,继续往下找,当出现 ++i++时编译器感觉不对,开始计算,就变成 1++,这是不合法的,所以编译器就会报错。

空格可以作为C语言中一个完整符号的休止符编译器读入空格后立即对之前读入的符号进行处理。

所以下面这么写就可以:

#include <stdio.h> int main(){       int i = 0;    int j = ++i + ++i + ++i;        int a = 1;    int b = 4;    int c = a++ + b;        int* p = &a;        b = b/ *p;     printf("i = %d\n", i);    printf("j = %d\n", j);    printf("a = %d\n", a);    printf("b = %d\n", b);    printf("c = %d\n", c);          return 0;}

编译结果如下:

C语言操作符++和--怎么使用

“C语言操作符++和--怎么使用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

C语言操作符++和--怎么使用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

C语言操作符++和--怎么使用

本篇内容介绍了“C语言操作符++和--怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、++与--操作符的本质++ 和 -- 操作符
2023-06-30

C语言操作符使用实例分析

本篇内容介绍了“C语言操作符使用实例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!算术操作符主要是 (+ - * / %) 五种算数操作
2023-07-02

C语言有哪些操作符

这篇文章将为大家详细讲解有关C语言有哪些操作符,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1.单目操作符之前有了解到的三目操作符(?:),指的是有三个操作数例如:3+5其中,+是一个操作符3是左操作数5
2023-06-29

怎么使用C语言操作树莓派GPIO

这篇文章主要介绍了怎么使用C语言操作树莓派GPIO,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。第一步安装GPIO库。cd /tmpwget https://project-
2023-06-15

一文详解C语言操作符

这篇文章主要详细介绍了C语言的操作符,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2023-05-20

C++逻辑操作符怎么使用

本篇内容主要讲解“C++逻辑操作符怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C++逻辑操作符怎么使用”吧!一、逻辑运算符的原生语义操作数只有两种值( true和 false )逻辑表
2023-06-30

C语言中字符串常用操作总结

C语言是一种非常流行的编程语言,它支持各种数据类型,包括整数、浮点数、字符和字符串等,本文将介绍 C语言中字符串的相关知识,包括字符串的定义、初始化、赋值等,需要的可以参考一下
2023-05-20

C语言中操作符的介绍及用法

这篇文章主要讲解了“C语言中操作符的介绍及用法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C语言中操作符的介绍及用法”吧!目录操作符分类算术操作符移位操作符整数存储规则左右移位规则赋值操作
2023-06-20

C语言操作符的示例分析

这篇文章给大家分享的是有关C语言操作符的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。前言C语言中操作符不多,但是有些相同的操作符都是在不同的表达式中,有不同的解释意思,比如 * 号,在表达式中5*5表示
2023-06-20

c语言的运算符怎么使用

在C语言中,运算符是一种用来执行特定操作的符号。以下是一些常见的C语言运算符的使用方法:算术运算符:用来执行基本的数学运算,如加法(+)、减法(-)、乘法(*)、除法(/)和取模(%)。关系运算符:用来比较两个值的关系,如等于(==)、不等
c语言的运算符怎么使用
2024-04-09

Python语言怎么在C语言中实现操作

这篇文章给大家介绍Python语言怎么在C语言中实现操作,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Python语言会在很多的语言中出现。我们在不断的学习和使用中存在着不少问题,下面我们就详细的来学习相关的知识以及如
2023-06-17

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录