黑马程序员 C语言 - 02 基本运算
2014-08-29 19:20
357 查看
若排版有错误,请查看pdf版:C语言 - 02 基本运算
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;
8;
a += 5;
// a = a + 5;
a *= 5;
// a = a * 5;
a+= 5 + 6 +4;
// a = a + (5 + 6 + 4);
int b;
int a =
10;
b = (a++) +(++a);
// b = 10 + 12; a=12;
b = (++a) + (a++);
// b = 13 + 13; a=14
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类型
2. 关系运算符的运算结果只有2种:如果条件成立,结果就为1,也就是“真”;如果条件不成立,结果就为0,也就是“假”。
3. 关系运算符中==、!=的优先级相等,<、<=、>、>=的优先级相等,且前者的优先级低于后者
4. 关系运算符的结合方向为“从左往右”: 4>3>2
5. 关系运算符的优先级小于算术运算符:3+4>8-2
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,为“假”
2. 条件A、条件B只要有一个成立(也包括条件A和条件B都成立),结果就为1
3. 总是先判断条件A是否成立(逻辑或的结合方向是“自左至右”)
1) 如果条件A成立,就不会再去判断条件B是否成立
2) 如果条件A不成立,接着再判断条件B是否成立
4. 逻辑或也适用于数值。比如 5 || 4的结果是1,为“真”;-6 || 0的结果是1,为“真”;0 || 0的结果是0,为“假”
2. 对条件A进行取反:若条件A成立,结果就为0,即“假”;若条件A不成立,结果就为1,即“真”
3. 对非0值进行逻辑非!运算的结果都是0,对0值进行逻辑非!运算的结果为1。
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. 基本使用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值+1int 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 && 条件B2. 当条件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 || 条件B2. 条件A、条件B只要有一个成立(也包括条件A和条件B都成立),结果就为1
3. 总是先判断条件A是否成立(逻辑或的结合方向是“自左至右”)
1) 如果条件A成立,就不会再去判断条件B是否成立
2) 如果条件A不成立,接着再判断条件B是否成立
4. 逻辑或也适用于数值。比如 5 || 4的结果是1,为“真”;-6 || 0的结果是1,为“真”;0 || 0的结果是0,为“假”
(三) 逻辑非 !
1. 使用格式:! 条件A2. 对条件A进行取反:若条件A成立,结果就为0,即“假”;若条件A不成立,结果就为1,即“真”
3. 对非0值进行逻辑非!运算的结果都是0,对0值进行逻辑非!运算的结果为1。
七、 三目运算
1. 使用格式:条件 ? 数值1 : 数值22. 条件成立返回数值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 | 位赋值运算 | &=、|=、<<=、>>=、>>>= |
相关文章推荐
- 【黑马程序员】iOS学习之路——C语言之数据的基本运算
- 黑马程序员——C语言学习之基本运算及优先级
- 黑马程序员——C语言基本运算
- 黑马程序员--c语言:scanf、sizeof、基本运算
- 黑马程序员_C语言基本运算和流程控制
- 李洪强iOS开发之【零基础学习iOS开发】【02-C语言】08-基本运算
- 黑马程序员--ios基础--c语言--基础语法、基本运算
- 黑马程序员——零基础学习iOS开发——04 c语言:基本运算、流程控制、函数
- 黑马程序员——C语言的基本运算
- 黑马程序员---【C语言】02基本数据类型
- 【零基础学习iOS开发】【02-C语言】08-基本运算
- 黑马程序员-C语言基本运算
- 黑马程序员--IOS入学学习--2-基本运算及流程控制(C语言)
- 黑马程序员—C语言笔记—基本运算与流程控制
- 【零基础学习iOS开发】【02-C语言】08-基本运算
- C语言-02-基本运算
- 黑马程序员——C语言(scanf函数、基本运算、流程控制)总结
- 黑马程序员——c语言的基本运算和流程控制
- 黑马程序员------C语言几种基本运算
- 黑马程序员 -- IOS C语言 基础运算02