C语言基础之运算

来源:互联网 发布:java语言程序设计培训 编辑:程序博客网 时间:2024/05/17 21:59

1、算术运算
(1)+、-、*
(2)/、%
整数相除,取整数部分。11%5=商2,余1
/和%不能对整数0进行操作,否则会中断程序。但是得到的结果是inf,表示无穷大。
%不能对浮点数使用。
/向零取整(取更接近0的数字)
%的结果与其左操作数的符号保持一致。

2、赋值运算
(1)将赋值运算符右边的值赋给左边的变量。//=
int a;
a=5;//将5赋给a
(2)赋值表达式的值就是赋值表达式左操作数的值。
int a,b,c;
a=b=c=5;//a=(b=(c=5));
printf(“%d,%d,%d\n”,a,b,c);//5,5,5
(3)赋值运算符的左操作数必须是一个左值——可被赋值的对象——变量,常量或表达式不能被赋值。
100=200;//error
100=a;//error
a+b=c;//error
(4)赋值运算符是“=”而不是“==”。
(5)赋值运算符还可和其它运算符结合起来使用,构成复合赋值。
a+=b;//a=a+b
a%=b;//a=a%b
(6)初始化与赋值是不同的。
int a=10;//初始化//int a;
a=100;//赋值

3、自增减运算
(1)++/–:变量自增/减1。
int a=10;
a++;//a:11
a–;//a:10
++a;//a:11
–a;//a:10
(2)不能用于常量
10++;//error
–10;//error
(3)可以用于所有的整型类变量,以及浮点类,但是多数情况下用于int。
(4)前后缀自增减的区别:
前缀:先自增减,再计算表达式。++a
后缀:先计算表达式,再自增减。a++
a++表达式和++a表达式的值都是从操作数a的内存空间中得到的。二者的区别在于,一个是先取表达式的值再自增,另一个是先自增再取表达式的值。
(5)忠告:自增减运算最好不要再一个表达式中使用多次。

4、关系运算

、>=、<、<=、==、!=
关系运算表达式的值是整数:1或者0
逻辑真:1

5、逻辑运算
(1)逻辑与(&&)、逻辑或(||)、逻辑非(!)
A&&B:只有当A和B的值都为真(非零)时,表达式的值才为真。
A||B:只有当A和B的值都为假(零)时,表达式的值才为假。
!A:当A的值为真时,表达式的值为假;当A的值为假时,表达式的值为真。
(2)短路运算
A&&B:如果A的值为假,则B不处理。
A||B:如果A的值为真,则B不处理。

水仙花源码://所谓“水仙花数”是指一个三位数,其各位数字的立方和等于该数本身#include <stdio.h>void main(){int a,b,c,i;for(i=100;i<1000;i++)//当i小于1000时,将执行大括号里的语句块{a=i/100;b=i%100/10;c=i%10;if(a*a*a+b*b*b+c*c*c==i){printf("%d\t",i);}}}