您的位置:首页 > 编程语言 > C语言/C++

黑马程序员 C语言 - 02 基本运算

2014-08-29 19:20 357 查看
若排版有错误,请查看pdf版:C语言 - 02 基本运算

第三章 基本运算

一、  算术运算

1.       基本使用

int a =
10 + 1 + 2 -3 +
5;
int b = -10;
int c =
10 * b;
int d = 10 /2;

 

2.       取余运算(% 模运算)

1)     %两边都是整数

2)     %取余结果的正负性只跟%左边的正负有关

int e = 10 % -3;// 1

 

3.       自动类型转换(double--->int)

int a = 10.8;

 

4.       强制类型转换(double--->int)

int b = (int)10.5;

 

5.       自动类型提升(int--->double)

double c =
10.6 + 6;
double d = 1 /3;

 

二、  赋值运算

a = 5 + 6 *5 +
8;

    a += 5;
// a = a + 5;
    a *= 5;
// a = a * 5;
    a+= 5 + 6 +4;
// a = a + (5 + 6 + 4);

 

三、  自增自减

++a是先把a的值+1,再把a值放入公式;a++是先把a值放入公式,再把a值+1

 

    int b;
    int a =
10;
    b = (a++) +(++a);
    // b = 10 + 12; a=12;
    b = (++a) + (a++);
 // b = 13 + 13; a=14

 

四、  sizeof

1.       作用:用来计算一个变量或者一个常量、一种数据类型所占的内存字节数。

2.       基本形式

1)  sizeof( 变量\常量 )

2)  sizeof 变量\常量

3)  sizeof( 数据类型 ) 不能是sizeof 数据类型

 

    int size =
sizeof(10);
    int size =
sizeof 10.9;
 
    int a =
10;
    int size =
sizeof(a);
    int size =
sizeof a;
 
    int size =
sizeof(char);
    int size =
sizeof char;
// 错误写法
    int size =
sizeof(sizeof)
// 不能是sizeof类型
 

五、  关系运算(比较运算)

1.       C语言规定,任何数值都有真假性,任何非0值都为“真”,只有0才为“假”。也就是说,108、-18、4.5、-10.5等都是“真”,0则是“假”。

2.       关系运算符的运算结果只有2种:如果条件成立,结果就为1,也就是“真”;如果条件不成立,结果就为0,也就是“假”。

3.       关系运算符中==、!=的优先级相等,<、<=、>、>=的优先级相等,且前者的优先级低于后者

4.       关系运算符的结合方向为“从左往右”: 4>3>2

5.       关系运算符的优先级小于算术运算符:3+4>8-2

 

六、  逻辑运算

(一)    逻辑与 &&

1.       使用格式:条件A && 条件B

2.       当条件A和条件B都成立时,结果才为1,也就是“真”

3.  总是先判断条件A是否成立(逻辑与的结合方向是“自左至右”)

1)     如果条件A成立,接着再判断条件B是否成立

2)     如果条件A不成立,就不会再去判断条件B是否成立

4.  若想判断a的值是否在(3, 5)范围内,千万不能写成3<a<5,因为关系运算符的结合方向为“从左往右”。比如a为2,它会先算3<a,也就是3<2,条件不成立,结果为0。再与5比较,即0<5,条件成立,结果为1。因此 3<a<5的结果为1,条件成立,也就是说当a的值为2时,a的值是在(3, 5)范围内的。这明显是不对的。正确的判断方法是:(a>3) && (a<5)

5.  C语言规定:任何非0值都为“真”,只有0才为“假”。因此逻辑与也适用于数值。比如
5 && 4的结果是1,为“真”;-6 && 0的结果是0,为“假”

(二)    逻辑或 ||

1.  使用格式:条件A || 条件B

2.  条件A、条件B只要有一个成立(也包括条件A和条件B都成立),结果就为1

3.  总是先判断条件A是否成立(逻辑或的结合方向是“自左至右”)

1)  如果条件A成立,就不会再去判断条件B是否成立

2)  如果条件A不成立,接着再判断条件B是否成立

4.  逻辑或也适用于数值。比如 5 || 4的结果是1,为“真”;-6 || 0的结果是1,为“真”;0 || 0的结果是0,为“假”

(三)    逻辑非 !

1.  使用格式:! 条件A

2.  对条件A进行取反:若条件A成立,结果就为0,即“假”;若条件A不成立,结果就为1,即“真”

3.  对非0值进行逻辑非!运算的结果都是0,对0值进行逻辑非!运算的结果为1。

 

七、  三目运算

1.       使用格式:条件 ? 数值1 : 数值2

2.       条件成立返回数值1,条件不成立返回数值2

    // 计算3个整数之间的最大值
    int a =
10;
    int b =
999999;
    int c =
1000;
   
     // 求出a、b的最大值
    int abMax = (a > b) ? a : b;
    // 求出最终的最大值
    int d = (abMax > c) ? abMax: c;

 

八、  运算符的优先级

优先级
描述
运算符
1
括号
()、[]
2
正负号
+、-
3
自增自减,非
++、--、!
4
乘除,取余
*、/、%
5
加减
+、-
6
移位运算
<<、>>、>>>
7
大小关系
>、>=、<、<=
8
相等关系
==、!=
9
按位与
&
10
按位异或
^
11
按位或
|
12
逻辑与
&&
13
逻辑或
||
14
条件运算
?:
15
赋值运算
=、+=、-=、*=、/=、%=
16
位赋值运算
&=、|=、<<=、>>=、>>>=
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言 基本运算