fbpx
维基百科

增值和减值操作符

在多数指令式编程语言中,增值和减值操作符指的是一类单目操作符,这些操作符相应地增加或减少其操作数的值。以C语言为例,“++”“--”操作符分别为增值操作符和减值操作符。

对操作数的限制(C语言) 编辑

增值和减值操作符的操作数可以为整型字符或者指针等,准确地说,这些操作符只要求其操作数必须为一个左值,也就是要求操作数必须为一个可以用在赋值符号“=”左边的表达式。

用法(C语言) 编辑

  • 前缀形式的++和--操作符。前缀形式的++和--操作符出现在操作数的前面,应用了这种形式后,操作数本身会相应的增加或减少。同时,表达式的值为操作数增加或减少后的值。用法如下所示:
 int i = 1; //运行完这条语句,i被赋值为1  int j = ++i; //运行完这条语句,i的值增了1变为2,而j的值为“++i”这个表达式的值为2  --j; //运行完这条语句,j的值减了1变为1,表达式“--j”的值为1但被抛弃 
  • 后缀形式的++和--操作符。后缀形式的++和--操作符出现在操作数的后面,应用了这种形式后,操作数本身会相应的增加或减少。同时,表达式的值为操作数增加或减少前的值。用法如下所示:
 int i = 5; //运行完这条语句,i被赋值为5  int j = i++; //运行完这条语句,i的值增了1变为6,而j的值为“i++”这个表达式的值为5  j--; //运行完这条语句,j的值减了1变为4,表达式“j--”的值为5但被抛弃 

原理(C语言) 编辑

对一个操作数应用增值或减值操作符,抽象来说将会创建一份操作数的拷贝,而创建拷贝的时间则根据操作符是前缀形式还是后缀形式来决定。所以使用这种操作符的表达式,实际用到的正是这份拷贝而不是操作数本身。所以编译器并不允许如i++ = 2;这样的语句出现。

一些实际应用(C语言) 编辑

  • 在计数功能上,使用增值和减值操作符可以让表达式比普通的赋值语句看起来更加简洁。
 for( int i=0; i<5; i++ ){ 一些代码; } //应用于循环的计数 
  • 增值和减值操作符可以用在指针的移动上以提高程序效率。
 //dst和src为大小相同的整型数组,以下程序实现了把src数组内容复制到dst数组的功能  //用增值减值操作符读取数据比用数组下标读取数据效率要高得多  register int *p1, *p2;  for( p1=src,p2=dst; p1<&src[SIZE]; )  {  *p2++ = *p1++;  } 

作为C++运算符 编辑

C++语言支持运算符重载。因此需要区分重载的是前增/减运算符还是后增/减运算符。

重载前置的++、-- 运算符时,函数无形参:

TestClass& operator++(); TestClass& operator--(); 

重载后置的++、--运算符时,函数中需要一个int形参(即哑元,an additional dummy int argument):

TestClass& operator++(int); TestClass& operator--(int); 

参考书目 编辑

  • [美]Brian W.Kernighan,Dennis M.Ritchie. C程序设计语言(第2版·新版). 机械工业出版社 (中文). 

增值和减值操作符, 此條目需要編修, 以確保文法, 用詞, 语气, 格式, 標點等使用恰当, 2024年4月27日, 請按照校對指引, 幫助编辑這個條目, 幫助, 討論, 在多数指令式编程语言中, 指的是一类单目操作符, 这些操作符相应地增加或减少其操作数的值, 以c语言为例, 操作符分别为增值操作符和减值操作符, 目录, 对操作数的限制, c语言, 用法, c语言, 原理, c语言, 一些实际应用, c语言, 作为c, 运算符, 参考书目对操作数的限制, c语言, 编辑的操作数可以为整型, 字符或者指针等, 准确. 此條目需要編修 以確保文法 用詞 语气 格式 標點等使用恰当 2024年4月27日 請按照校對指引 幫助编辑這個條目 幫助 討論 在多数指令式编程语言中 增值和减值操作符指的是一类单目操作符 这些操作符相应地增加或减少其操作数的值 以C语言为例 操作符分别为增值操作符和减值操作符 目录 1 对操作数的限制 C语言 2 用法 C语言 3 原理 C语言 4 一些实际应用 C语言 5 作为C 运算符 6 参考书目对操作数的限制 C语言 编辑增值和减值操作符的操作数可以为整型 字符或者指针等 准确地说 这些操作符只要求其操作数必须为一个左值 也就是要求操作数必须为一个可以用在赋值符号 左边的表达式 用法 C语言 编辑前缀形式的 和 操作符 前缀形式的 和 操作符出现在操作数的前面 应用了这种形式后 操作数本身会相应的增加或减少 同时 表达式的值为操作数增加或减少后的值 用法如下所示 int i 1 运行完这条语句 i被赋值为1 int j i 运行完这条语句 i的值增了1变为2 而j的值为 i 这个表达式的值为2 j 运行完这条语句 j的值减了1变为1 表达式 j 的值为1但被抛弃 后缀形式的 和 操作符 后缀形式的 和 操作符出现在操作数的后面 应用了这种形式后 操作数本身会相应的增加或减少 同时 表达式的值为操作数增加或减少前的值 用法如下所示 int i 5 运行完这条语句 i被赋值为5 int j i 运行完这条语句 i的值增了1变为6 而j的值为 i 这个表达式的值为5 j 运行完这条语句 j的值减了1变为4 表达式 j 的值为5但被抛弃原理 C语言 编辑对一个操作数应用增值或减值操作符 抽象来说将会创建一份操作数的拷贝 而创建拷贝的时间则根据操作符是前缀形式还是后缀形式来决定 所以使用这种操作符的表达式 实际用到的正是这份拷贝而不是操作数本身 所以编译器并不允许如i 2 这样的语句出现 一些实际应用 C语言 编辑在计数功能上 使用增值和减值操作符可以让表达式比普通的赋值语句看起来更加简洁 for int i 0 i lt 5 i 一些代码 应用于循环的计数 增值和减值操作符可以用在指针的移动上以提高程序效率 dst和src为大小相同的整型数组 以下程序实现了把src数组内容复制到dst数组的功能 用增值减值操作符读取数据比用数组下标读取数据效率要高得多 register int p1 p2 for p1 src p2 dst p1 lt amp src SIZE p2 p1 作为C 运算符 编辑C 语言支持运算符重载 因此需要区分重载的是前增 减运算符还是后增 减运算符 重载前置的 运算符时 函数无形参 TestClass amp operator TestClass amp operator 重载后置的 运算符时 函数中需要一个int形参 即哑元 an additional dummy int argument TestClass amp operator int TestClass amp operator int 参考书目 编辑 美 Brian W Kernighan Dennis M Ritchie C程序设计语言 第2版 新版 机械工业出版社 中文 取自 https zh wikipedia org w index php title 增值和减值操作符 amp oldid 82418212, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。