一、对C语言的初步认识
二、C语言基本数据类型、操作符和表达式
三、C语言顺序结构程序设计
四、C语言选择结构程序设计
五、C语言循环结构程序设计
六、C语言位运算
七、C语言数组与字符串
八、C语言指针
九、C语言中的函数
十、C语言中数据和存储类型
十一、C语言中的用户定义数据类型
十二、C语言中编译预处理命令
一、算术运算符
1、基本的算术运算符:
(1)+ (加法运算符,或正值运算符)
如:3+5
、+3
(2)- (减法运算符,或负值运算符)
如:5-2
、-3
(3)* (乘法运算符)
如:3*5
(4)/ (除法运算符)
如:5/3
(5)% (模运算符,或称求余运算符,%两侧均应为整型数据)
如:7%4
的值为3
需要说明,两个整数相除的结果为整数
—— 例如:5/3
的结果值为1,舍去小数部分
如果除数或被除数中有一个为负值,则舍入的方向是不固定的
——例如:-5/3
在有的机器上得到结果-1,有的机器则给出结果-2
多数C编译器采取“向零取整”的方法
——例如:5/3=1
,-5/3=-1
用算术运算符和括号将运算对象(也称操作数)连接起来的、符合C语法规则的式子,称C算术表达式。
运算对象包括常量、变量、函数等。
——例如:a*b/c-1.5+'a'
在算术运算符中除了“%”要求整数外,其余可以是任意数据类型
自增、自减运算符
-
作用是使变量的值增1或减1,即:
++j;
等效于:j=j+1;
j++;
等效于:j=j+1;
--j;
等效于:j=j-1;
j--;
等效于:j=j-1;
-
++j
与j++
,--j
与j--
的区别:
++j
:在使用j
之前,先使j
的值加(减)1;
j++
:在使用j
之后,使j
的值加(减)1
例如:int i=3; /* i:3 */
a=i++; /* i:4 a:3 */
b=++i; /* i:5 b:5 */
运算结果:
a=3
b=5
i=5
使用自增、自减运算符注意事项
(1)自增运算符(++)和自减运算符(–),只能用于变量,而不能用于常量或表达式。
例如:5++;
或(a+b)++
; 都是不合法的
(2)++和–的结合方向是“自右至左”
例如:
int i=3;
a=-i++;
结果: a=-3
- 为了避免错误,易阅读,最好把上面的表达式这样写:
a = -(i++);
(3)ANSI C并没有具体规定表达式中的子表达式的求值顺序。允许各编译系统自己安排。
例如:设i的初值为3,有表达式:
(i++)+(i++)+(i++)
- 有的系统按照自左而右顺序求解括弧内的运算,结果为
3+4+5
,即12。 - 而另一些系统(如turbo c和MS C)设i的原值为3,那么作为表达式中所有
i
的值,因此3个i
相加,得9。然后再实现自家3次,i
的值变为6。 - 如果编程者的原意是想得到12,