c语言算术运算符,C语言 算术运算符

C语言 算术运算符

c语言算术运算符,C语言 算术运算符

文章插图
共44个运算符:初等 , 4个: ( ) [ ] -> 指向结构体成员 . 结构体成员
单目 , 9个: ! ~ ++ -- -负号 (类型) *指针 &取地址 sizeof长度
算术 , 5个: * / % + -减
位移 , 2个: << >>
关系 , 6个: < <= > >= == 等于 != 不等于
位逻 , 3个: & 按位与 ^ 按位异或 | 按位或 逻辑 , 2个: && 逻辑与 || 逻辑或
条件 , 1个 ,  三目: ? :
赋值 , 11个: = += -= *= /= %= >>= <<= &= ^= |=
逗号 , 1个: ,
如何理解C语言中算术运算符的结合性 , 比方说吧 ++这个运算符 , 表达式i=5 , i++这个表达式的值是几??i的值
c语言算术运算符,C语言 算术运算符

文章插图
这是个比较经典的问题 , 不要被这个吓到 , 其实很简单的
++分两种 , 一种是前++ , 一种是后++;
一:前++ , 表示先自己加1 , 然后再做相应的运算
ex:
#include
void main()
{
int i=5,a;
a=++i;
printf("%d",a);
}
显示结果为6;
二:后++ , 表示做完相应的运算后 , 再自加1;
ex:
#include
void main()
{
int i=5,a;
a=i++;
printf("%d",a);
}
这里的显示结果为5;
ps:细心的人会发现下面问题:
ex:
#include
void main()
{
int i=5;
i++;
printf("%d",i);
}
#include
void main()
{
int i=5;
++i;
printf("%d",i);
}
这两者的显示结果都是6 , 这是为什么呢?
很显然 , 尽管显示的结果是一样的 , 但是执行过程是不同的 。
在执行++i的时候 , i先自加1变成6 , 然后执行结束了这条语句 , 所以显示结果为6;
在执行i++的时候 , 当跳入这句语句的时候 , i还是5 , 但是这句话执行结束的时候 , i就自加了1 , 变成了6 , 所以显示结果也是6 。
听起来可能比较拗口哈 , 但是应该还是能看懂的吧?
希望我的回答对你用帮助哈~
C语言中算术运算符优先级的问题
c语言算术运算符,C语言 算术运算符

文章插图
1. 运算符的优先级表
C 语言的符号众多 , 由这些符号又组合成了各种各样的运算符 。既然是运算符就一定有其特定的优先级 , 下表就是C 语言运算符的优先级表:
2. 注意事项:
C语言中算术运算符% , ++ , — —,都是什么意思?能举例子说明吗?
c语言算术运算符,C语言 算术运算符

文章插图
C语言中 , 算术运算符“%”代表模(取余)运算 , “++”代表变量自增运算 , “--”代表变量自减运算 。
1、模运算“%”
“模”是“Mod”的音译 , 模运算多应用于程序编写中 。Mod的含义为求余 。模运算在数论和程序设计中都有着广泛的应用 , 从奇偶数的判别到素数的判别 , 从模幂运算到最大公约数的求法 , 从孙子问题到凯撒密码问题 , 无不充斥着模运算的身影 。
C语言用“%”代表模运算 , 例如7%2=1、8%5=3等 。
2、自增运算“++”
C语言用“++”代表自增运算 , 分为前缀自增和后缀自增 , 其效果均为自身变量值+1 。前缀自增例如“a=5;b=++a;” , 则运行结果是“a=6 , b=6” 。后缀自增例如“a=5;b=a++;” , 则运行结果是“a=6 , b=5” 。