C语言中的“--”的用法

   更新日期:2024.05.28
b = b - 1; 是语句。
--b 和 b-- 可以是 表达式 也可以是语句。
作为单独语句时,它们 同 b = b - 1; 完全一样。
在表达式里,--b 表示 b 先减去 1,再参加运算。在表达式里,b-- 表示 先 参加运算,运算完毕,b 再减去 1。
如果 同一个语句 中,--b 或 b-- 作为表达式, 连续多次出现时,编译时,语法检查 不会报告 有错,但 运算结果 随编译器 的不同,或编译时的选项设置不同,结果会不同。所以 使用这种--形式,要特别留神。

b--,--b,++b,b++这些在表达式中,运算符放在前面的,先算b=b-1(或者b=b+1),然后再算=号.而运算符在后面的,先=号,后b再加一或者减一。
举个简单的例子:
int b=23;
b=b-1; //这时候b=22
//*----------------------
int b=23;
int a=b--; //a=23,b=22
//--------------------
int b=23;
int a=--b; // a=22,b=22

int b1 =5,b2=5
int c;
c = --b1;
则此时c=4,b1=4; 先对b1进行--,之后再取值
c=b2--;
则此时c=5,b1=4 ,先取值,之后对b2--

b = b - 1; 是语句 赋值语句



  • 17719463751 :c语言中?:的用法
    盖询段2009 :答:C语言中?:的用法类似于if和else,它是一个条件运算符。格式是表达式1?表达式2:表达式3。含义是:如果表达式1成立(值为真),则表达式2是整个条件表达式的值;如果表达式1不成立(值为假),则表达式3是整个条件表达式的值。常用的格式 如:min=(c<d)?c:d;该语句的含义如上图所示:如果c<d...
  • 17719463751 :c语言中的+=, -=,*=,等是什么意思?举个例子.用法
    盖询段2009 :答:a += b; == a = a+b;a -= b; == a = a-b;a *= b; == a = a*b;a /= b; == a = a/b;形式差不多,只是看“=”号前面的是什么运算符就做什么运算!切记:其中的 a 一定要是变量,而b可以是变量,也可以是常量!
  • 17719463751 :C语言中free函数的用法
    盖询段2009 :答:free函数的用法释放ptr指向的存储空间。被释放的空间通常被送入可用存储区池,以后可在调用malloc、realloc以及calloc函数来再分配。free 不管指针指向多大的空间,均可以正确地进行释放,这一点释放比 delete/delete [] 要方便。如在分配指针时,用的是new或new[]。在释放内存时,并不能图方便而使用free...
  • 17719463751 :关于C语言中 || 和 &&的用法
    盖询段2009 :答:区别:1.运算符性质不同。&是一个位运算符。&&是一个逻辑运算符。2.作用不同。&是将两个二进制的数逐位相与,结果是相与之后的结果。&&就是判断两个表达式的真假性,只有两个表达式同时为真才为真,有一个为假则为假,具有短路性质。3.用途限制。&除了是一个位运算符,也是取地址符。&&就是...
  • 17719463751 :c语言 switch的用法
    盖询段2009 :答:执行过程:先计算并获得switch后面小括号里的表达式或变量值,然后将计算结果顺序与每个case后的常量比较。当二者相等时,执行个case块中的代码,当遇到break时,就跳出switch选择结构,执行switch选择结构之后的代码。如果任何一个case之后的常量与switch后的小括号中的值相等,则执行switch尾部的default块中...
  • 17719463751 :c语言–>什么意思
    盖询段2009 :答:->是一个整体,它是用于指向结构体、C++中的class等含有子数据的指针用来取子数据。换种说法,如果我们在C语言中定义了一个结构体,然后申明一个指针指向这个结构体,那么我们要用指针取出结构体中的数据,就要用到“->”.举个例子:struct Data { int a,b,c;}; /*定义结构体*/ struct Data...
  • 17719463751 :C语言中逗号运算符怎么用?
    盖询段2009 :答:;是首先把y赋值为3,把y递增为4,然后把4加上2,把结果6赋值给z,接下来把z加5最后把x赋为结果值11。2、注意事项:逗号运算符( , )是C语言运算符中优先级最低的一种运算符。二、其它用法:1、在for里面的应用:int i;int j;for(i=0,j=0;i<5;i++,j++)2、当分隔符:int i,j;...
  • 17719463751 :C语言中的default是什么意思,怎么用?
    盖询段2009 :答:default是在程序中使用该关键字提供一个默认的方法。在c语言中与switch语句配套使用。在JAVA(8)中为接口提供一个默认的方法。default表示该字段的默认值是一个空的字符串‘’,即在插入记录时不指定该字段取值时默认用‘’作为插入值。
  • 17719463751 :请问C语言中的"."、"*"、"->"、"&"都有什么作用和区别?
    盖询段2009 :答:代表此时我们声明的变量时指针变量(指针变量的值是地址不是数据),a=&b;表示把变量b的地址赋给指针,此后的"&b",中的‘&’是取地址符号即变量b所在的内存单元的编号。使指针变量指向b所在的内存单元,那么要是用指针使用b的数据即3,可以使用:*a,此时的‘*’代表使用指针变量所指向的值,...
  • 17719463751 :c语言位运算符的用法
    盖询段2009 :答:c语言位运算符的用法3 一、位运算符 在计算机中,数据都是以二进制数形式存放的,位运算就是指对存储单元中二进制位的运算。C语言提供6种位运算符。 二、位运算 位运算符 & |~<< >> ∧ 按优先级从高到低排列的顺序是: 位运算符中求反运算“~“优先级最高,而左移和右移相同,居于第二,接下来的顺序...
  • 相关链接

    欢迎反馈与建议,请联系电邮
    2024 © 视觉网