APP下载

C语言中的自增自减运算符的应用

2014-12-15李芙蓉

读写算·教研版 2014年21期
关键词:运算符C语言表达式

李芙蓉

摘 要:自增、自减运算符是 C 程序设计语言中特有的,在编程过程中经常用到。本文根据自增(自减)运算符的特点, 浅谈自增(自减)运算符在VC++6.0编译器的应用,以期为初学者学习和使用自增(自减)运算符提供一些帮助。

关键词:C语言;自增(自减)运算符;表达式

中图分类号:G642 文献标识码:B 文章编号:1002-7661(2014)21-009-01

C语言功能强大,使用灵活,是初学者的很好的入门语言。而自增(自减)是C语言中比较有特色的运算符,在编程中合理使用可以节省代码,提高效率;但是如果使用不当,则极易造成错误。本文根据自增(自减)运算符的特点, 浅谈自增(自减)运算符在VC++6.0编译器的应用,以期为初学者学习和使用自增(自减)运算符提供一些帮助。

一、自增(自减)运算符的含义及使用形式

1、自增自减运算符的含义

C语言的自增和自减运算符分别是:++,--。作用是使变量的值加1或减1,它们能操作的对象只能是变量,常量不能进行自增(自减)运算。如7++相当于7=7+1,和赋值表达式的要求不相符。特别要注意的是在C语言中,数组名和函数名都属于常量,因此不能进行自增(自减)运算。表达式也不能进行自增(自减)运算。如(a+b)--,等价于a+b=a+b-1,不符合赋值表达式的要求。自增(自减)运算符具有对运算量重新赋值的功能,故不能对无存储空间的对象进行重新赋值。

2、自增(自减)运算符的使用形式

自增(自减)运算符作用于变量之前称为前缀运算(++i或--i),运算符作用于变量之后称为后缀运算(i++或i--)。前缀运算规则为:“先变后用”,即,加(减)号在前,先加(减)后用;运算结果:变量的值相应增加1(减少1)。后缀运算规则为:“先用后变”,即,加(减)号在后,先用后加(减);运算结果:变量的值相应增加1(减少1)。

二、自增(自减)运算符的灵活运用

“++、--”运算符在 C 语言程序中的运用非常广,也非常灵活,现通过例子说明。

1、自增(自减)运算符在表达式中的应用

例 #include

void main()

{int i=3,j=3,p,q;

p=++i;①

q=j++;②

printf("%d,%d,%d,%d\n",p,q,i,j);}

运行程序,输出结果为:4,3,4,4

分析:①是前缀,“先变后用”。即先执行i=i+1,在执行p=i。因此i和p的值都是4。②是后缀,“先用后变”。即先执行q=j,在执行j=j+1。因此q的值为3,j的值为4。

2、自增(自减)运算符的混合应用

设i的初值为4,求表达式p=(i++)+(i++)+(i++);自增运算作为后缀式,其运算优先级低于求和运算。相当于先执行p=i+i+i,在执行i++,i++,i++。因此p的值为12,i的值为7。

而表达式p=(++i)+(++i)+(++i);自增运算作为前缀式,其运算优先级高于求和运算。故先按照“自右至左”的结合性进行两次自增运算即++i,++i,i的值变为6,获得满足第一个求和运算符两侧的操作数要求进行6+6求和运算,然后将和值(12)与变量i的第三次自增值(i=7)进行第二次求和运算(12+7)即p=((++i)+(++i))+(++i)=(6+6)+7=19,最后i的值为7。

关于自增(自减)运算符的在混合应用中的规则我们可以理解为,若作前缀形式,其运算优先级高于其它算术运算,即先按照“从右至左”的结合性进行自增(自减)运算,再进行其它运算;若为后缀形式,其运算优先级低于其它算术运算,即先进行其它算术运算,再按照“从右至左”的结合性进行自增(自减)运算。

3、自增(自减)运算符在函数调用中的应用

在调用函数时,对函数参数的求值顺序是自右至左。

例如:i=4; printf("%d,%d",++i,++i);

上面printf函数中遵循从右至左的求值顺序,先求出第2个表达式 ++i 的值 5,然后求第1个表达式++i的值6,最后再从左到右输出每个表达式++i的值:6,5。

i=4; printf("%d,%d",i++,i++);

上面输出函数执行顺序仍为从右向左,第2个表达式i++的值为4,此时变量i并没有立即自增,,所以第1个表达式i++的值仍为4。最后再从左到右输出每个表达式i++的值:4,4。当输出函数执行完成之后,变量i执行i++操作,一共执行了2次,i的值为6。

4、自增(自减)运算符在循环结构中的应用

在循环语句while,do while和for中都有类似“i++;”或“i--;”这样由变量和自增自减运算符构成的赋值语句充当使循环趋于结束的语句,目的是为了避免程序出现死循环。

例#include

Void main()

{int s=0,i;

for(i=1;i<=20;i++)

s=s+i;

printf("%d\n",s); }

分析:当循环变量i=21时,条件不成立,循环结束。

在循环表达式中出现的自增自减运算符可看做独立的语句,++i 和i++最终都使得循环变量i的值自增,所以没有分别,等价于i=i+1。

三、结束语

自增、自减运算符是 C 程序设计语言中特有的,在编程过程中经常用到,但对于初学者而言,往往感到难以理解这两个运算符的运算实质,因此使用自增自减运算符时要特别小心,仔细考虑,否则会得到莫名其妙的结果,对于初学者在学习中应该多分析,同时也应多上机练习。希望通过对此所作的探讨,能够使初学者正确理解自增、自减运算符的作用和意义。

参考文献:

[1] 谭浩强.C程序设计[M].3版.北京:清华大学出版社,2005.

[2] 梁海英.C语言程序设计.清华大学出版社.2013

[3] 朱承学.C语言程序设计教程 [M].中国水利水电出版社.2004.

摘 要:自增、自减运算符是 C 程序设计语言中特有的,在编程过程中经常用到。本文根据自增(自减)运算符的特点, 浅谈自增(自减)运算符在VC++6.0编译器的应用,以期为初学者学习和使用自增(自减)运算符提供一些帮助。

关键词:C语言;自增(自减)运算符;表达式

中图分类号:G642 文献标识码:B 文章编号:1002-7661(2014)21-009-01

C语言功能强大,使用灵活,是初学者的很好的入门语言。而自增(自减)是C语言中比较有特色的运算符,在编程中合理使用可以节省代码,提高效率;但是如果使用不当,则极易造成错误。本文根据自增(自减)运算符的特点, 浅谈自增(自减)运算符在VC++6.0编译器的应用,以期为初学者学习和使用自增(自减)运算符提供一些帮助。

一、自增(自减)运算符的含义及使用形式

1、自增自减运算符的含义

C语言的自增和自减运算符分别是:++,--。作用是使变量的值加1或减1,它们能操作的对象只能是变量,常量不能进行自增(自减)运算。如7++相当于7=7+1,和赋值表达式的要求不相符。特别要注意的是在C语言中,数组名和函数名都属于常量,因此不能进行自增(自减)运算。表达式也不能进行自增(自减)运算。如(a+b)--,等价于a+b=a+b-1,不符合赋值表达式的要求。自增(自减)运算符具有对运算量重新赋值的功能,故不能对无存储空间的对象进行重新赋值。

2、自增(自减)运算符的使用形式

自增(自减)运算符作用于变量之前称为前缀运算(++i或--i),运算符作用于变量之后称为后缀运算(i++或i--)。前缀运算规则为:“先变后用”,即,加(减)号在前,先加(减)后用;运算结果:变量的值相应增加1(减少1)。后缀运算规则为:“先用后变”,即,加(减)号在后,先用后加(减);运算结果:变量的值相应增加1(减少1)。

二、自增(自减)运算符的灵活运用

“++、--”运算符在 C 语言程序中的运用非常广,也非常灵活,现通过例子说明。

1、自增(自减)运算符在表达式中的应用

例 #include

void main()

{int i=3,j=3,p,q;

p=++i;①

q=j++;②

printf("%d,%d,%d,%d\n",p,q,i,j);}

运行程序,输出结果为:4,3,4,4

分析:①是前缀,“先变后用”。即先执行i=i+1,在执行p=i。因此i和p的值都是4。②是后缀,“先用后变”。即先执行q=j,在执行j=j+1。因此q的值为3,j的值为4。

2、自增(自减)运算符的混合应用

设i的初值为4,求表达式p=(i++)+(i++)+(i++);自增运算作为后缀式,其运算优先级低于求和运算。相当于先执行p=i+i+i,在执行i++,i++,i++。因此p的值为12,i的值为7。

而表达式p=(++i)+(++i)+(++i);自增运算作为前缀式,其运算优先级高于求和运算。故先按照“自右至左”的结合性进行两次自增运算即++i,++i,i的值变为6,获得满足第一个求和运算符两侧的操作数要求进行6+6求和运算,然后将和值(12)与变量i的第三次自增值(i=7)进行第二次求和运算(12+7)即p=((++i)+(++i))+(++i)=(6+6)+7=19,最后i的值为7。

关于自增(自减)运算符的在混合应用中的规则我们可以理解为,若作前缀形式,其运算优先级高于其它算术运算,即先按照“从右至左”的结合性进行自增(自减)运算,再进行其它运算;若为后缀形式,其运算优先级低于其它算术运算,即先进行其它算术运算,再按照“从右至左”的结合性进行自增(自减)运算。

3、自增(自减)运算符在函数调用中的应用

在调用函数时,对函数参数的求值顺序是自右至左。

例如:i=4; printf("%d,%d",++i,++i);

上面printf函数中遵循从右至左的求值顺序,先求出第2个表达式 ++i 的值 5,然后求第1个表达式++i的值6,最后再从左到右输出每个表达式++i的值:6,5。

i=4; printf("%d,%d",i++,i++);

上面输出函数执行顺序仍为从右向左,第2个表达式i++的值为4,此时变量i并没有立即自增,,所以第1个表达式i++的值仍为4。最后再从左到右输出每个表达式i++的值:4,4。当输出函数执行完成之后,变量i执行i++操作,一共执行了2次,i的值为6。

4、自增(自减)运算符在循环结构中的应用

在循环语句while,do while和for中都有类似“i++;”或“i--;”这样由变量和自增自减运算符构成的赋值语句充当使循环趋于结束的语句,目的是为了避免程序出现死循环。

例#include

Void main()

{int s=0,i;

for(i=1;i<=20;i++)

s=s+i;

printf("%d\n",s); }

分析:当循环变量i=21时,条件不成立,循环结束。

在循环表达式中出现的自增自减运算符可看做独立的语句,++i 和i++最终都使得循环变量i的值自增,所以没有分别,等价于i=i+1。

三、结束语

自增、自减运算符是 C 程序设计语言中特有的,在编程过程中经常用到,但对于初学者而言,往往感到难以理解这两个运算符的运算实质,因此使用自增自减运算符时要特别小心,仔细考虑,否则会得到莫名其妙的结果,对于初学者在学习中应该多分析,同时也应多上机练习。希望通过对此所作的探讨,能够使初学者正确理解自增、自减运算符的作用和意义。

参考文献:

[1] 谭浩强.C程序设计[M].3版.北京:清华大学出版社,2005.

[2] 梁海英.C语言程序设计.清华大学出版社.2013

[3] 朱承学.C语言程序设计教程 [M].中国水利水电出版社.2004.

摘 要:自增、自减运算符是 C 程序设计语言中特有的,在编程过程中经常用到。本文根据自增(自减)运算符的特点, 浅谈自增(自减)运算符在VC++6.0编译器的应用,以期为初学者学习和使用自增(自减)运算符提供一些帮助。

关键词:C语言;自增(自减)运算符;表达式

中图分类号:G642 文献标识码:B 文章编号:1002-7661(2014)21-009-01

C语言功能强大,使用灵活,是初学者的很好的入门语言。而自增(自减)是C语言中比较有特色的运算符,在编程中合理使用可以节省代码,提高效率;但是如果使用不当,则极易造成错误。本文根据自增(自减)运算符的特点, 浅谈自增(自减)运算符在VC++6.0编译器的应用,以期为初学者学习和使用自增(自减)运算符提供一些帮助。

一、自增(自减)运算符的含义及使用形式

1、自增自减运算符的含义

C语言的自增和自减运算符分别是:++,--。作用是使变量的值加1或减1,它们能操作的对象只能是变量,常量不能进行自增(自减)运算。如7++相当于7=7+1,和赋值表达式的要求不相符。特别要注意的是在C语言中,数组名和函数名都属于常量,因此不能进行自增(自减)运算。表达式也不能进行自增(自减)运算。如(a+b)--,等价于a+b=a+b-1,不符合赋值表达式的要求。自增(自减)运算符具有对运算量重新赋值的功能,故不能对无存储空间的对象进行重新赋值。

2、自增(自减)运算符的使用形式

自增(自减)运算符作用于变量之前称为前缀运算(++i或--i),运算符作用于变量之后称为后缀运算(i++或i--)。前缀运算规则为:“先变后用”,即,加(减)号在前,先加(减)后用;运算结果:变量的值相应增加1(减少1)。后缀运算规则为:“先用后变”,即,加(减)号在后,先用后加(减);运算结果:变量的值相应增加1(减少1)。

二、自增(自减)运算符的灵活运用

“++、--”运算符在 C 语言程序中的运用非常广,也非常灵活,现通过例子说明。

1、自增(自减)运算符在表达式中的应用

例 #include

void main()

{int i=3,j=3,p,q;

p=++i;①

q=j++;②

printf("%d,%d,%d,%d\n",p,q,i,j);}

运行程序,输出结果为:4,3,4,4

分析:①是前缀,“先变后用”。即先执行i=i+1,在执行p=i。因此i和p的值都是4。②是后缀,“先用后变”。即先执行q=j,在执行j=j+1。因此q的值为3,j的值为4。

2、自增(自减)运算符的混合应用

设i的初值为4,求表达式p=(i++)+(i++)+(i++);自增运算作为后缀式,其运算优先级低于求和运算。相当于先执行p=i+i+i,在执行i++,i++,i++。因此p的值为12,i的值为7。

而表达式p=(++i)+(++i)+(++i);自增运算作为前缀式,其运算优先级高于求和运算。故先按照“自右至左”的结合性进行两次自增运算即++i,++i,i的值变为6,获得满足第一个求和运算符两侧的操作数要求进行6+6求和运算,然后将和值(12)与变量i的第三次自增值(i=7)进行第二次求和运算(12+7)即p=((++i)+(++i))+(++i)=(6+6)+7=19,最后i的值为7。

关于自增(自减)运算符的在混合应用中的规则我们可以理解为,若作前缀形式,其运算优先级高于其它算术运算,即先按照“从右至左”的结合性进行自增(自减)运算,再进行其它运算;若为后缀形式,其运算优先级低于其它算术运算,即先进行其它算术运算,再按照“从右至左”的结合性进行自增(自减)运算。

3、自增(自减)运算符在函数调用中的应用

在调用函数时,对函数参数的求值顺序是自右至左。

例如:i=4; printf("%d,%d",++i,++i);

上面printf函数中遵循从右至左的求值顺序,先求出第2个表达式 ++i 的值 5,然后求第1个表达式++i的值6,最后再从左到右输出每个表达式++i的值:6,5。

i=4; printf("%d,%d",i++,i++);

上面输出函数执行顺序仍为从右向左,第2个表达式i++的值为4,此时变量i并没有立即自增,,所以第1个表达式i++的值仍为4。最后再从左到右输出每个表达式i++的值:4,4。当输出函数执行完成之后,变量i执行i++操作,一共执行了2次,i的值为6。

4、自增(自减)运算符在循环结构中的应用

在循环语句while,do while和for中都有类似“i++;”或“i--;”这样由变量和自增自减运算符构成的赋值语句充当使循环趋于结束的语句,目的是为了避免程序出现死循环。

例#include

Void main()

{int s=0,i;

for(i=1;i<=20;i++)

s=s+i;

printf("%d\n",s); }

分析:当循环变量i=21时,条件不成立,循环结束。

在循环表达式中出现的自增自减运算符可看做独立的语句,++i 和i++最终都使得循环变量i的值自增,所以没有分别,等价于i=i+1。

三、结束语

自增、自减运算符是 C 程序设计语言中特有的,在编程过程中经常用到,但对于初学者而言,往往感到难以理解这两个运算符的运算实质,因此使用自增自减运算符时要特别小心,仔细考虑,否则会得到莫名其妙的结果,对于初学者在学习中应该多分析,同时也应多上机练习。希望通过对此所作的探讨,能够使初学者正确理解自增、自减运算符的作用和意义。

参考文献:

[1] 谭浩强.C程序设计[M].3版.北京:清华大学出版社,2005.

[2] 梁海英.C语言程序设计.清华大学出版社.2013

[3] 朱承学.C语言程序设计教程 [M].中国水利水电出版社.2004.

猜你喜欢

运算符C语言表达式
老祖传授基本运算符
基于Visual Studio Code的C语言程序设计实践教学探索
一个混合核Hilbert型积分不等式及其算子范数表达式
表达式转换及求值探析
用手机插头的思路学习布尔运算符
浅析C语言运算符及表达式的教学误区
基于C语言的计算机软件编程
高职高专院校C语言程序设计教学改革探索
论子函数在C语言数据格式输出中的应用
表达式求值及符号推导