变量、数据类型、表达式
变量
-变量定义的一般形式就是:
- <类型名称><变量名称>;
- ep:int price,amount;
标识符----变量的名字
构造规则:
- 标识符只能由字母、数字和下划线组成
- 数字不可以出现在第一个位置上
- C语言的==关键字(保留字)=不可以用作标识符=
- 具体如下:
- auto,break,case,char,const,continue,default,do,double,else
,enum,extern,float,for,goto,if,int,long,register,return,short,signed,sizeof
,static,struct,switch,typedef,union,unsigned,void,volatile,while,inline,restrict
赋值和初始化
- 赋值
- a=b 把右侧变量的值赋给左侧 b=a与a=b表达的意思完全相反
- 初始化:赋值发生在定义变量的时候
- 语法:<类型名称><变量名称>=<初始值>;
- 统一类型多个变量赋值
- <类型名称><变量名称1>=<初始值1> ,<变量名称2>=<初始值2>;
- C语言没有强制所有的变量都在定义的地方做初始化,但是所有变量在第一次被使用(出现在赋值运算符的右边之前)应该被赋值一次
变量与常量
常量定义的一般形式就是:
- const <类型名称><变量名称>;
- 常量的变量名称一般为全大写
常量一旦初始化就不可以被修改,但是必须赋初值
变量类型/数据类型
【C语言是一种变量类型严格的语言(相比较于Python),程序运行时不能改变变量类型】
- 两个整数的运算结果仍为整数,例如两个整数相除,所得结果只为商,而没有余数
- 当浮点数和整数一起运算时,C会将整数转换成浮点数,然后进行浮点数的运算
具体的数据类型
数据类型 | 英文 | 缩写 | 占用字节大小 | 表示数据范围 | 作用 |
---|---|---|---|---|---|
整型 | int | d | 表示整数 | ||
(单精度)浮点数 | float | f | 表示小数/无理数 | ||
双精度浮点数 | double | lf | 表示小数/无理数 |
表达式
含有+ - =等运算符构成的等式
运算符
进行运算的动作,比如+、-、=
C符号 | 意义 |
---|---|
+ | 加 |
- | 减 |
* | 乘 |
/ | 除 |
% | 取余(取小数点后的部分) |
() | 括号 |
+= | a+=b等价于a=a+b a+=b+c等价于a=a+(b+c) |
-= | a-=b等价于a=a-b |
/= | a/=b等价于a=a/b |
*= | a*=b等价于a=a*b |
%= | a%=b等价于a=a%b |
++ | 递增 |
- - | 递减 |
a++与++a是不同的,两者运行完之后都使a加1,但是a++返回值为a没加1之前的值,而++a返回a加1之后的值。- -同理
运算符的优先级
优先级 | 运算符 | 运算 | 结合关系 | 举例 |
---|---|---|---|---|
1 | + | 单目不变 | 自右向左 | a*+b |
1 | - | 单目取负 | 自右向左 | a*-b |
2 | * | 乘 | 自左向右 | a*b |
2 | / | 除 | 自左向右 | a/b |
2 | % | 取余 | 自左向右 | a%b |
3 | + | 加 | 自左向右 | a+b |
3 | - | 减 | 自左向右 | a-b |
4 | = | 赋值 | 自右向左 | a=b |
- 赋值也是运算,也有结果
- a=b=6→a=(b=6) 【b=6的结果为6】
- 运算时优先级高先进行运算,优先级相同的按顺序计算
算子
参与运算的值,可能是常数,可能是变量,还可能是另一个方法的返回值
交换变量的值
设中间变量法
下面展示一些 内联代码片
。
// A code block
#include <stdio.h>
int main()
{
int a=6,b=5,tmp=0;
tmp=a;
a=b;
b=tmp;
return 0;
}
关于输入函数Scanf
- 结构: scanf(" %要读入的数据类型 %要读入的数据类型,%要读入的数据类型",&变量名1,&变量名2,&变量名3)
- 注意:
- 在“ ”内两个%%之间的内容决定于输入数据的格式:比如输入数据格式为1,2那么%%用,隔开;如果是1 2,那么%%用空格隔开
- 在“ “里的任何一个字符都会对应着一个输入数据
- %d是十进制整数
- &为地址符