自增自减运算例题详解 c语言中指针可不可以用在自增自减运算符中?
浏览量:1080
时间:2021-03-17 17:01:22
作者:admin
c语言中指针可不可以用在自增自减运算符中?
普通指针可以执行,--操作,普通指针不能,函数指针也不能。如果:int a[10],*P=a,那么P,P,P--,--P是合法的,但是a,a,a--,--a不是合法的,因为a是数组名和常量指针;常量修改的常量指针不能执行,--操作,如果int x,*const q=&x,那么q不能再指向别处,q,q--,--q是非法的。对指向函数的指针进行操作是没有意义的。因为函数的大小不同并且不是连续存储的,所以对指向函数的指针进行操作是非法的
这是一类特殊的运算符,即自动递增和自动递减运算符--对变量进行操作的结果是增加1和减少1。例如--coutercouter--amountamount在这些例子中,运算符前后的效果是相同的,它们都是加1或减1,但是当它们作为其他表达式的一部分时,它们之间就有区别。如果运算符放在变量前面,则变量在运算之前完成自增或自减运算;如果运算符放在后面,则在变量参与表达式运算之后执行自增和自减运算。这可能不是很清楚。让我们看看下面的例子:num1=4num2=8A=num1b=num2a=num1。一般来说,这是一项任务。将num1的值赋给a,因为自动递增运算符在变量前面,所以num1首先从1增加到5,然后赋给a,最后a也是5。B=num2这是将num2的值赋给B,因为自动递增运算符在变量后面,所以首先将num2赋给B,B应该是8,然后num2将从1增加到9。那么,我们如何应对这种情况呢?C=num1 num2是C=(num1)num2还是C=num1(num2)取决于编译器。不同的编译器可能有不同的结果。所以我们在今后的编程中应该尽量避免上述复杂的情况。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。