1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > C语言中的加加减减

C语言中的加加减减

时间:2022-06-18 00:34:02

相关推荐

C语言中的加加减减

++i:自增运算符

功能:i 自增1后再参与运算

#include <stdio.h>int main(){int i = 8;printf("%d\n",i);return 0;}

执行结果:

说明:i 先自增1 后i变为9 再将9输出

--i 自减运算符

功能:i自减1后再参与运算

#include <stdio.h>int main(){int i = 8;printf("%d\n",i--);return 0;}

执行结果:

说明:i 先自减1 后再参与运算所以i的值是7

i++:i参与运算后i的值自增1

#include <stdio.h>int main(){int i = 8;printf("%d\n",i++);printf("%d\n",i);return 0;}

执行结果:

说明:因为i先参与运算后值自增1,所以输出的值是8,9;

i-- i参与运算后i的值自减1

#include <stdio.h>int main(){int i = 8;printf("%d\n",i--);printf("%d\n",i);}

执行结果:

说明:因为i 参与运算后i的值自减1,所以输出的结果是8,7

-i++i先与负号结合再自增

#include <stdio.h>int main(){int i = 8;printf("%d\n",-i++);‘printf("%d\n",i);return 0;}

执行结果:

说明:i先与负号结合得到-8然后再自增1(输出-8),在第二个输出语句中输出9

-i--:i先与负号结合再自减

#include <stdio.h>int main(){int i = 8;printf("%d\n",-i--);‘printf("%d\n",i);return 0;}

执行结果:

-(++i):i先自增再与负号结合

#include <stdio.h>int main(){int i = 8;printf("%d\n",-(++i));printf("%d\n",i);return 0;}

执行结果:

-(--i):i先自减再与负号结合

#include <stdio.h>int main(){int i = 8;printf("%d\n",-(--i));printf("%d\n",i);return 0;}

执行结果:

(i++) + (i++) + (i++)

#include <stdio.h>int main(){int i = 5;int p = (i++) + (i++) + (i++);printf("%d\n",p);printf("%d\n",i);return 0; }

执行结果:

说明:这里的i++是先参与运算后再自增1

所以:p = 5 +5 + 5

有三个i++,i自增三次后得到i= 8;、

(++i) + (++i) + (++i)

#include <stdio.h>int main(){int i = 5;int p = (++i) + (++i) + (++i);printf("%d\n",p);printf("%d\n",i);return 0; }

执行结果:

说明:++ii先自增1后再参与运算

先计算(++i)+(++i)首先自增两次 i = 7

(++i) + (++i) = 14

而后就变为 q = 14 + (++i)

此时的第三个++i自增了三次变为8

q = 14 +8 = 22

i自增了三次变成了8

(i--) + (i--) + (i--)

#include <stdio.h>int main(){int i = 5;int p = (i--) + (i--) + (i--);printf("%d\n",p);printf("%d\n",i);return 0; }

执行结果:

说明:这里的i--是先参与运算后再自减1

所以:p = 5 +5 + 5

有三个i--,i自减三次后得到i= 2;、

(--i) + (--i) + (--i)

--ii先自减1后再参与运算

#include <stdio.h>int main(){int i = 5;int p = (--i) + (--i) + (--i);printf("%d\n",p);printf("%d\n",i);return 0;}

执行结果:

说明:先计算(--i)+(--i)首先自减两次 i = 3

(--i) + (--i) = 6

而后就变为 q = 6 + (--i)

此时的第三个++i自增了三次变为2

q = 6 +2 = 8

i自减了三次变成了2

*p++先取指针p指向的值,再将指针p自增1

#include <stdio.h>int main(){int a[5] = {1,8,10,5,2};int *p;p = a;printf("%d\n",*p++);printf("%d\n",*p);return 0;}

执行结果:

说明:*p++先计算*p将*p的值输出后p自增1

所以在第二个printf中打印的是a[1]的值

*p--先取指针p指向的值,再将指针p自减1

#include <stdio.h>int main(){int a[5] = {1,8,10,5,2};int *p;p = &a[1];printf("%d\n",*p++);printf("%d\n",*p);return 0;}

执行结果:

说明:*p--先计算*p将*p的值输出后p自减1

所以在第二个printf中打印的是a[0]的值

(*p)++ 先取指针p指向的值(以p为内存地址的值),再将该值自增1

#include <stdio.h>int main(){int a[5] = {1,8,10,5,2};int *p;p = a;printf("%d\n",(*p)++);printf("%d\n",*p);return 0;}

执行结果:

说明:p = a;

*p = a[0];

*(p)++ = a[0] + 1;

但是因为i++是先参与运算后自增1

所以第一个printf()输出的是*p的值1

第二个Printf()输出的是*p+1的值 2

(*p)-- 先取指针p指向的值(以p为内存地址的值),再将该值自减1

#include <stdio.h>int main(){int a[5] = {1,8,10,5,2};int *p;p = a;printf("%d\n",(*p)--);printf("%d\n",*p);return 0;}

执行结果:

说明:p = a;

*p = a[0];

*(p)-- = a[0]- 1;

但是因为i++是先参与运算后自增1

所以第一个printf()输出的是*p的值1

第二个Printf()输出的是*p-1的值 0

*++p先将指针p自增1(此时指向第二个元素) *操作取出该值

#include <stdio.h>int main(){int a[5] = {1,8,10,5,2};int *p;p = a;printf("%d\n",*++p)return 0; }

执行结果:

*--p先将指针p自减1(此时指向第一个元素) *操作取出该值

#include <stdio.h>int main(){int a[5] = {1,8,10,5,2};int *p;p = &a[1];printf("%d\n",*--p);return 0; }

执行结果:

++*p:先取出p指向的数字,再将这个数字加1

#include <stdio.h>int main(){int a[5] = {1,8,10,5,2};int *p;p = a;printf("%d\n",++*p);return 0;}

执行结果:

--*p:先取出p指向的数字,再将这个数字减1

#include <stdio.h>int main(){int a[5] = {1,8,10,5,2};int *p;p = a;printf("%d\n",--*p);return 0;}

执行结果:

*(p++) :p与++先结合(而不是*)先结合,这个先是运算符跟谁结合在一起而不是时间的先后

如 t = *(p++);

等价于 t = *p;p++;

#include <stdio.h>int main(){int a[5] = {1,8,10,5,2};int *p;p = a;printf("%d\n",*(p++));printf("%d\n",*p);return 0;}

执行结果:

*(p--) :p与--先结合(而不是*)先结合,这个先是运算符跟谁结合在一起而不是时间的先后

如 t = *(p--);

等价于 t = *p;p--;

#include <stdio.h>int main(){int a[5] = {1,8,10,5,2};int *p;p = a;printf("%d\n",*(p--));printf("%d\n",*p);return 0;}

执行结果:

 

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。