C语言基本语法(图解):
第一个C语言程序:Hello World
#include <stdio.h> // 这是头文件
/* main()是主函数,程序执行的开始 */
main(){
/* printf()是在终端输出字符串
最终结果打印Hello world
*/
printf("Hello World\n\n");
}
1. 标识符的命名规则
①只能由字母,数字,下划线,或者美元符号($)组成
②不能以数字开头 ;
③区分大小写,通常变量名和函数名都用小写字母表示;
④不能和C语言中的32个关键字重名。
2.关键字(保留字)
C语言中具有特殊含义的英文单词。通常用于构成语句,存储数据,定义数据类型等
C语言的共有32个关键字
3.数据类型介绍
输出格式:
%c(c是charactor的首字母)表示输出单个字符
%d(d是十进制数decimal的首字母)表示输出整数
%f(d是浮点数float的首字母)表示输出小数
输出项列表:即存放要输出的变量名称。
注意,这里使用printf()时,前面的字符串和后面的数字中间用逗号,隔开。这里的%c、%d和%f称为占位符,在终端输出时,用后面的的数字替换。注意,不同类型的占位符是有区别的,用错了打印的值也会错误。
4.运算符–简单运算法(算术运算符、关系运算符和逻辑运算符)
运算符 | 符号 | 操作 | 用例 | 结果 |
---|---|---|---|---|
加法 | + | 使它两侧的值加到一起 | 1+2 | 3 |
减法 | - | 从它前面的数减去后面的数 | 5-3 | 2 |
乘法 | * | 将它前面的数乘以后面的数 | 2*3 | 6 |
除法 | / | 用它左边的值除以右边的值 | 8/3 | 2(整数的除法会丢掉小数部分) |
取模/取余 | % | 求用它左边的值除以右边的数后的余数 | 5%3 | 2(%运算符两侧的操作数必须为整数) |
算术运算符特点
优先级:* / % > + -
结合律:自左向右
5.关系运算符
运算符 | 符号 | 操作 |
---|---|---|
等于 | == | 检查两个操作数的值是否相等,如果相等则条件为真。 |
不等于 | != | 检查两个操作数的值是否相等,如果不相等则条件为真。 |
大于 | > | 检查左操作数的值是否大于右操作数的值,如果是则条件为真。 |
小于 | < | 检查左操作数的值是否小于右操作数的值,如果是则条件为真。 |
大于等于 | >= | 检查左操作数的值是否大于或等于右操作数的值,如果是则条件为真。 |
小于等于 | <= | 检查左操作数的值是否小于或等于右操作数的值,如果是则条件为真。 |
在C语言中0为假,其他为真。
注意:这里除了>和<与数学表示一样,其他的都与数学表示有区别。
关系运算符特点
优先级:算术运算符 > > >= < <= > == !=
结合律:自左向右
6.逻辑运算符
运算符 | 符号 | 操作 |
---|---|---|
与 | && | 称为逻辑与运算符。如果两个操作数都非零,则条件为真。 |
或 | II | 称为逻辑或运算符。如果两个操作数中有任意一个非零,则条件为真。 |
非 | ! | 称为逻辑非运算符。用来逆转操作数的逻辑状态。如果条件为真则逻辑非运算符将使其为假。 |
逻辑运算符特点:
优先级:! > 算术运算符 > 关系运算符 > && > ||
结合律:&&与||自左向右;!自右向左。
7.复合赋值运算符
运算符 | 描述 | 实例 |
---|---|---|
+= | 加且赋值运算符,把右边操作数加上左边操作数的结果赋值给左边操作数 | C += A 相当于 C = C + A |
-= | 减且赋值运算符,把左边操作数减去右边操作数的结果赋值给左边操作数 | C -= A 相当于 C = C - A |
*= | 乘且赋值运算符,把右边操作数乘以左边操作数的结果赋值给左边操作数 | C *= A 相当于 C = C * A |
/= | 除且赋值运算符,把左边操作数除以右边操作数的结果赋值给左边操作数 | C /= A 相当于 C = C / A |
%= | 求模且赋值运算符,求两个操作数的模赋值给左边操作数 | C %= A 相当于 C = C % A |
说明
复合赋值运算符与赋值运算符的优先级相同。
8.自增运算符++与自减运算符–
前缀自增/自减
运算符 | 描述 | 实例 |
---|---|---|
++ | 自增运算符,整数值增加 1 | ++A 相当于 A=A+1 |
– | 自减运算符,整数值减少 1 | –A 将得到 A=A-1 |
后缀自增/自减
自增运算符与自减运算符与其他运算法不同点在于副作用(表达式计算结果之后修改变量的值)。所以,分析时需要分别分析表达式的值和变量的值。
前缀自增(++n) | 前缀自减(–n) | 后缀自增(n++) | 后缀自减(n–) | |
---|---|---|---|---|
表达式的值 | n+1 | n-1 | n | n |
变量的值 | n+1 | n-1 | n+1 | n-1 |
前缀与后缀的不同点在于表达式的值是否加1/减1,相同点在于变量的值都会加1/减1。
说明
自增运算符++、自减运算符–和复合赋值运算符主要用于简化代码。
自增运算符与自减运算符优先级高于算术运算符。