博主在回忆c语言的基本知识时,突然发现自增自减运算符(--.++)这个知识点有些模糊不清,故博主为了给同为小白的同学们提供一些经验,特写下这篇文章. 首先,自增自减运算符共有两种操作方式. 比如,我先定义一个变量a,以"++"为例,共有"a++"."++a"种操作方式."下面我们在实际的代码中看一下. #include<stdio.h> //自增自减运算符的测试 int main() { int a = 21; int c;…
一个整数类型的变量自身加 1 可以这样写: a = a + 1; 或者 a += 1; 不过,C语言还支持另外一种更加简洁的写法,就是: a++; 或者 ++a; 这种写法叫做自加或自增,意思很明确,就是每次自身加 1.相应的,也有a--和--a,它们叫做自减,表示自身减 1.++和--分别称为自增运算符和自减运算符,它们在循环结构中使用很频繁.自增和自减的示例: #include <stdio.h> int main() { int a = 10, b = 20; printf("…
int x , y,z; x = 0; y = z = -1; x += -z ---y; printf("x=%d\n",x) x = 2 为什么? x + = -z - - -y 相当于 x = x + ((-z)--)-y; 这里-z-是先用-z然后再(-z)- -运算 这里需要注意的是操作符结合的顺序是自左至右,而运算顺序是自右至左! 也就是 –z - - -y 表示的是 ((-z)--)-y 而不是 (-z)-(--y) #include <stdio.h>…
起源: 今天在了解副作用side-effect的过程中,看到了下面的网页,把我带到了由printf引起的一系列问题,纠结了一整天,勉强弄懂. 第一个代码没什么好解释的.而第二个printf("return of swap is %d\tx=%d,y=%d\n",swap(&x,&y),x,y)居然是"return of swap is 1 x=1,y=0",输出的x和y的值并没有改变! 原因在于C语言函数参数的处理是从右到左的压栈顺序(这个我在看第一…