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

分类: 计算机技术
推荐阅读:
Linux显示使用内存最多的十个进程 在Linux系统下,你可以使用一条命令显示当前系统使用内存最多的十个进程:
Python ord()函数 ord() 函数是 Python 内置函数之一,用于返回表示单个字符的 Unicode 码。它接受一个参数,即要获取 Unicode 码的字符。
C语言isxdigit()函数:判断字符是否为十六进制数字字符 isxdigit()是C语言标准库中的一个函数,用于判断一个字符是否为十六进制数字字符;十六进制数字包括0~9之间的数字,以及A~F的字母(不区分大小写);
Python getattr()函数 getattr() 函数是 Python 内置函数之一,用于获取一个对象的指定属性值。
从PyInstaller打包生成的EXE文件中提取Python源码 本文将详细讲解怎么使用 pyi-archive_viewer 和 uncompyle6 工具提取pyinstaller打包生成的EXE中的pyc文件,并将其正确的解码成py源码。
Windows10禁用系统更新 Windows10禁用系统自动更新方法如下: