C语言中 i++ 和 ++i 的区别

在C语言中,++ 运算符也叫递增运算符,只需要一个操作数,属于一元运算符;本文将讨论前缀++运算符和后缀++运算符的区别,以及符号优先级的问题;

++运算符

++运算符用于将操作数增1(这里不讨论指针);不管运算符在操作数之前还是之后,其结果是相同的;

#include <stdio.h>

int main(){

	int i = 0, j = 0;
	i++;
	++j;
	printf("i:%d j:%d\n", i, j);

}

运行结果

i:1 j:1

i++ 和 ++i 的区别

前缀++运算符先作用于操作数,再返回值;后缀++运算符先返回值,再作用于操作数;

#include <stdio.h>

int main(){

	int i = 0, j = 0;

	printf("i:%d j:%d\n", ++i, j++);

	printf("i:%d j:%d\n", i, j);

}

运行结果

i:1 j:0
i:1 j:1

符号的优先级

= 运算符的优先级高于后缀++运算符,而前缀++运算符高于=运算符;

#include <stdio.h>

int main(){

	int i = 0, j = 0;
	int n;

	n = i++;
	printf("%d\n", n);

	n = ++j;
	printf("%d\n", n);

}
0
1

代码的第8行,=运算符的优先级高于后缀++运算符,所以先将i值赋予n,再将i增1;

代码的第11行,=运算符的优先级低于前缀++运算符,所以先将j增1,再将j值赋予n.

原创内容,如需转载,请注明出处;

本文地址: https://www.perfcode.com/p/difference-between-iplusplus-and-plusplusi-in-c.html

分类: 计算机技术
推荐阅读:
Rust爬取网页上的所有链接 要在Rust中爬取网页上的所有链接,可以使用一些Rust的库,例如reqwest和scraper。
为什么MD5说是128位,却只有32个字符? 为什么MD5说是128位,却只有32个字符?这是因为这两个长度的概念不同;
C语言生成范围内的随机数 给定一个范围,当前时间做为随机种子,使用C语言生成范围内的随机数;
使用Rust serde处理文件(读取、保存) 本文使用serde_json为例;展示Rust serde如何读取文件、保存文件;
让Linux终端像电影里一样下起数字雨 在Linux系统里,如果你想要实现电影里的数字雨,一条命令即可:
Python dir()函数 在Python中,dir()函数是一个内置函数,用于列出指定对象的属性和方法。如果没有指定对象,则默认使用当前作用域中的所有对象。dir()函数返回一个字符串列表,包含指定对象的所有属性和方法名称。