C语言入门——自增,自减运算(逐行逐句分析)

简介: C语言入门——自增,自减运算(逐行逐句分析)


C语言入门——突破自增,自减运算(逐行逐句分析)

相信你看完,会有收获的!

一个整数类型的变量自身加 1 可以这样写:

①:a = a + 1;

②:a += 1;

当然,C语言还支持有另外一种更加简洁的写法,就是:a++; or ++a;

这种写法我们称之为:自增(自加)。

与之对应的,也有a–和--a,即自减,其表示自身减 1。

自增运算符与自减运算符:

自增运算符:++
自减运算符: –

在简单了解后,我们从主函数开始逐行逐句分析一下

首先以自增运算为例

#include<stdio.h>
int main()
{
    //++ -- 自增,自减 一元运算符
1.        int a = 3;
2.        int b = a++; //a++ a = a + 1; //执行完这代码后,先给b赋值,再自增
3.        printf("%d\n",a); 
4.        int c = ++a;//++a a = a + 1;//执行完这行代码前,先自增,再给c赋值
5.      printf("%d\n",a);   
6.      printf("%d\n",b);
7.      printf("%d\n",c);     
8.    return 0;
}

在向下阅览之前,可以先自己算一下 这四个输出的值为多少,然后再结合下文所写,加深理解。

空白与"//"注释部分(为了整体的观感与可读性)不再多加分析

注释:关键句已用★标出

按照所标序号开始逐行逐句分析:

1.int a = 3; //定义整型变量a,并将3赋值给a;

2.int b = a++; // b = a++;那赋值后b等于几?3 or 4? 答案是3 ★★★

为什么是3?

可以这样理解,a++,它是先执行b = a;这个语句 再执行一个隐藏语句——a = a + 1;即它先给b赋值然后再自增+1。所以,b的值为3。

本句结束时: a = 4; b = 3;

3.如果printf("%d",a);输出a不进行换行;

如果%d之后加了\n,如:printf("%d\n",a); 输出a的同时需要进行换行操作。

4.int c = ++a; //c=++a; 语句执行赋值后c又等于几呢?4 or 5?答案是5 ★★★

那为什么是5?

这样想一下在第二句的解释,a++,它是先执行b = a;这个语句 再执行一个隐藏语句——a = a + 1;

那么++a,它是先执行隐藏语句a = a + 1;再执行c = a赋值语句,所以a = a + 1; a变成了5,然后再赋值给c;即它先自增然后再赋值给c,因此,c的值为5。

本句结束时: a = 5; b = 3; c = 5;

5.6.7.同3.解释 依次输出a,b,c的同时进行换行操作

输出的值从上向下依次为5,3,5

8.return 0; return语句结束main()函数的执行,把0返还给操作系统。

输出结果如图:

然后,来说一下自减运算自减运算上述自增运算非常相似,无非是增加1换成了减去1,不再多做阐述。此处放上代码大家可以自己分析一下然后对比一下计算结果

#include<stdio.h>
int main()
{
    //++ -- 自增,自减 一元运算符
        int a = 3;
        int b = a--; //a-- a = a - 1; //执行完这代码后,先给b赋值,再自减 
        printf("%d\n",a); 
        int c = --a;//--a a = a - 1;//执行完这行代码前,先自减,再给c赋值
    printf("%d\n",a);   
    printf("%d\n",b);
    printf("%d\n",c);      
  return 0;
}

输出结果:

希望这篇文章对你有所帮助!


如果有误,还请指出!如果有什么不理解的,欢迎评论留言交流!

创作不易,喜欢的话,还请多多点赞与关注!

感谢支持!欢迎评论交流学习!

最后,留一个小问题:

int i = 0;

int j = i++;

int k = --i;

i,j,k分别等于多少呢?(评论区揭晓答案)


目录
相关文章
|
4月前
|
安全 编译器 C语言
C++入门1——从C语言到C++的过渡
C++入门1——从C语言到C++的过渡
88 2
|
23天前
|
存储 编译器 C语言
【C语言程序设计——入门】C语言入门与基础语法(头歌实践教学平台习题)【合集】
本文档介绍了C语言环境配置和编程任务,主要内容包括: - **C语言环境配置**:详细讲解了在Windows系统上配置C语言开发环境的步骤。 - **第1关:程序改错**:包含任务描述、相关知识(如头文件引用、基本语法规则)、编程要求、测试说明及通关代码。 - **第2关:scanf函数**:涉及`scanf`和`printf`函数的格式与使用方法,提供编程要求、测试说明及通关代码。 文档结构清晰,涵盖从环境搭建到具体编程任务的完整流程,适合初学者学习和实践。
42 4
|
23天前
|
C语言
【C语言程序设计——入门】基本数据类型与表达式(头歌实践教学平台习题)【合集】
这份文档详细介绍了编程任务的多个关卡,涵盖C语言的基础知识和应用。主要内容包括: 1. **目录**:列出所有关卡,如`print函数操作`、`转义字符使用`、`数的向上取整`等。 2. **各关卡的任务描述**:明确每关的具体编程任务,例如使用`printf`函数输出特定字符串、实现向上取整功能等。 3. **相关知识**:提供完成任务所需的背景知识,如格式化输出、算术运算符、关系运算符等。 4. **编程要求**:给出具体的代码编写提示。 5. **测试说明**:包含预期输入输出,帮助验证程序正确性。 6. 文档通过逐步引导学习者掌握C语言的基本语法和常用函数,适合初学者练习编程技能。
35 1
|
6月前
|
存储 C语言
【C语言】基础刷题训练4(含全面分析和代码改进示例)
【C语言】基础刷题训练4(含全面分析和代码改进示例)
|
2月前
|
存储 NoSQL 编译器
【C语言】指针的神秘探险:从入门到精通的奇幻之旅 !
指针是一个变量,它存储另一个变量的内存地址。换句话说,指针“指向”存储在内存中的某个数据。
113 3
【C语言】指针的神秘探险:从入门到精通的奇幻之旅 !
|
3月前
|
并行计算 算法 测试技术
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面,旨在通过综合策略提升程序性能,满足实际需求。
86 1
|
4月前
|
存储 Java 编译器
初识C语言1——C语言入门介绍
初识C语言1——C语言入门介绍
48 1
|
5月前
|
存储 C语言 数据格式
【C语言基础考研向】03混合运算和printf讲解
本文分为两部分。第一部分介绍了C语言中的混合运算与类型强制转换的重要性,通过实例展示了当整型数进行除法运算且结果为小数时,必须使用类型转换才能正确存储浮点数结果。第二部分详细讲解了`printf`函数的功能与使用方法,包括格式化输出不同类型数据的基本语法,并通过具体示例演示了如何利用字段宽度和对齐方式来控制输出格式,帮助读者更好地理解和掌握输出格式的控制技巧。
71 10
|
4月前
|
C语言
回溯入门题,数据所有排列方式(c语言)
回溯入门题,数据所有排列方式(c语言)
|
4月前
|
C语言
初识C语言:自增与自减陷阱
初识C语言:自增与自减陷阱

热门文章

最新文章