1. 基本数据类型–字符型、整型和浮点型
上一章节中我用到了printf("hello word");
这是数据类型中的字符串,我们还有更加基础的数据类型—数值类型。例如,字符c,整数1,小数1.1。接下来我们尝试在终端将其输出。
#include<stdio.h>
int main(){
printf("%c\n",'c');
printf("%d\n",1);
printf("%f\n",1.1);
return 0;
}
经编译后
字符型是单个字符,必须用英文单引号包裹
这里使用了输出函数另一种用法:
printf("输出格式",输出项列表)
输出格式:
%c
(c是charactor的首字母)表示输出单个字符
%d
(d是十进制数decimal的首字母)表示输出整数
%f
(d是浮点数float的首字母)表示输出小数
输出项列表:即存放要输出的变量名称。
- 注意,这里使用printf()时,前面的字符串和后面的数字中间用逗号,隔开。这里的%c、%d和%f称为占位符,在终端输出时,用后面的的数字替换。注意,不同类型的占位符是有区别的,用错了打印的值也会错误。
同时在C语言中,这三种可以在一行输出,字符与数字可以同时输出。
#include <stdio.h>
int main() {
printf("%c\n%d\n%f\n",'c',1,1.1);
return 0;
}
2. 运算符–简单运算法(算术运算符、关系运算符和逻辑运算符)
程序中数字之间是可以像数学中数字一样进行运算的。例如:1+2,2*3等计算。
#include <stdio.h>
int main() {
printf("%d\n",1+2+3);
return 0;
}
对于数字常用的简单运算有算术运算符、关系运算符和逻辑运算符三类运算符。
2.1 算术运算符
运算符 | 符号 | 用途 | 用例 | 结果 |
---|---|---|---|---|
加法 | + | 左右两个数值相加 | 1+1 | 2 |
减法 | - | 左边数值减去右边数值 | 2-1 | 1 |
乘法 | * | 左右两边数值相乘 | 2*3 | 6 |
除法 | / | 左边的数值除以右边的数值 | 7/3 | 2(结果只保留可以被整除整数部分) |
取余 | % | 求左边数值除以右边数值之后的余数 | 7%3 | 1(只保留余下的整数部分) |
- 算术运算符特点
优先级:* / %
>+ -
结合律:自左向右
2.2 关系运算符
数字除了可以计算外,还可以比较大小。
运算符 | 符号 | 用途 |
---|---|---|
等于 | == | 检查两个操作数的值是否相等,如果相等则条件为真。 |
不等于 | != | 检查两个操作数的值是否相等,如果不相等则条件为真。 |
大于 | > | 检查左操作数的值是否大于右操作数的值,如果是则条件为真。 |
小于 | < | 检查左操作数的值是否小于右操作数的值,如果是则条件为真。 |
大于等于 | >= | 检查左操作数的值是否大于或等于右操作数的值,如果是则条件为真。 |
小于等于 | <= | 检查左操作数的值是否小于或等于右操作数的值,如果是则条件为真。 |
在C语言中0
为假,其他为真。
-
注意:这里除了
>
和<
与数学表示一样,其他的都与数学表示有区别。 -
关系运算符特点
优先级:算术运算符 >>
>=
<
<=
>==
!=
结合律:自左向右
2.3 逻辑运算符
真假也可以运算,被称为逻辑运算。有如下:
运算符 | 符号 | 用途 |
---|---|---|
与 | && | 称为逻辑与运算符。如果两个操作数都非零,则条件为真。 |
或 | || | 称为逻辑或运算符。如果两个操作数中有任意一个非零,则条件为真。 |
非 | ! | 称为逻辑非运算符。用来逆转操作数的逻辑状态。如果条件为真则逻辑非运算符将使其为假。 |
- 可参考门电路
- 逻辑运算符特点:
优先级:!
>算术运算符
>关系运算符
>&&
>||
结合律:&&
与||
自左向右;!
自右向左。
2.4 优先级和括号
运算符都有优先级,改变优先级使用()。
3. 变量
3.1说明变量
实际的例子中,有些值一直是变化的,而另外一些值是不变,例如,求圆的周长和面积的时候,半径是变的,而圆周率是不变,在数学中我们通常使用变量代替,在程序中也可以定义并使用变量。
- 定义
定义用来说明变量的名字和类型。
语法
先指定类型,然后指定变量名。
类型 变量名;
示例
int a;// 定义整型变量为a;
float b;// 定义浮点型变量为b;
- 这里的
int
表示整型,float
表示浮点型。
- 赋值
在变量名后,紧接=
,后面再接常量。
a = 10;
b = 1.2;
- 使用
使用方式与常量相同。直接使用变量代替常量
#include <stdio.h>
int main(){
int a;// 声明整型变量为a;
float b;// 声明浮点型变量为b;
a = 10;
b = 1.2;
printf("a=%d\nb=%f\n",a,b);
printf("%d+%f=%f\n",a,b,a+b);
}
- 初始化
定义和赋值通常可以写在一起。这种定义时赋值的操作被称作初始化。
int a = 10;
float b = 1.2;
3.2 命名规则
- 变量名是字母、数字和下划线的组合。
- 变量名的开头必须是字母或下划线,不能是数字。
- 实际编程中最常用的是以字母开头,而以下划线开头的变量名是系统专用的。
- 变量名中的字母是区分大小写的。比如a和A是不同的变量名,num和Num也是不同的变量名。
- 变量名绝对不可以是C语言关键字。关键词是由C语言规定的具有特定意义的字符串,通常也称为保留字。
标准C语言有如下关键字:
3.3 重点
1.变量使用前必先初始化(定义和赋值)
2.变量显性三要素:类型、变量名、值
4. 表达式
变量和常量能够参与计算,这种计算的式子称为表达式,表达式由运算符和操作数组成。
表达式必有计算结果。
5. 输入
如何通过键盘输入数字,并且保存在变量中?
#include <stdio.h>
int main(){
int n;
scanf("%d",&n);
printf("%d\n",n);
return 0;
}