一、变量定义与命名规则
(一)变量定义
- 示例:int price; int amount;
- 示例:int price, amount;
- 单个变量初始化:<类型名称> <变量名称> = <初始值>;
- 示例:int price = 0; int amount = 100;
- 多个变量组合初始化:可单独为每个变量赋值
- 示例:int price = 0, amount = 100;
(二)变量命名规则(标识符规则)
(三)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
二、变量类型与数据类型
(一)变量类型核心规则
(二)基本数据类型
| int | 整数类型,用于存储整数,运算速度快、占用空间小 | %d | %d | int age = 20; |
| double | 双精度浮点数,用于存储带小数点的数值(推荐使用) | %f | %f | double weight = 62.5; |
| float | 单精度浮点数,用于存储带小数点的数值 | %f | %f | float height = 1.75f; |
(三)整数类型特性
(四)浮点数类型特性
三、常量
(一)直接量(字面常量)
程序中直接书写的固定不变的数,如 100、3.14 等,示例:int change = 100 – price; 中的 100。
(二)const 修饰的常量
- 示例:const int AMOUNT = 100;
- const 是修饰符,给变量添加 "不可修改" 属性
- 常量初始化后不能再修改,若试图修改会被编译器报错
- 推荐使用:增强程序可读性和可维护性
四、输入与输出
(一)输入函数 scanf
- 注意:变量名前必须加取地址符 &,示例:scanf("%d", &price);
- 示例:scanf("%f", &weight);
(二)输出函数 printf
- 示例:printf("找您%d元。\\n", change);
- 示例:printf("体重为%fkg\\n", weight);
(三)变量定义位置差异(ANSI C 与 C99)
| ANSI C | 只能在代码开头定义 | int price = 0; int change = 0; scanf("%d", &price); change = 100 – price; |
| C99 | 可在代码中间按需定义 | int price = 0; scanf("%d", &price); int change = 100 – price; |
五、表达式与运算符
(一)表达式
- amount = X * (1 + 0.033) * (1 + 0.033) * (1 + 0.033);
- total = 57;
- count = count + 1;
- value = (min / 2) * lastValue;
(二)基本概念
(三)运算符优先级与结合关系
| 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),结果 a 和 b 均为 6
- 由算术运算符(+、-、*、/、%)与赋值运算符 = 组合而成
- 包括:+=、-=、*=、/=、%=
- 示例:total += 5; 等价于 total = total + 5;
- 注意:两个运算符中间不能有空格
- 单目运算符,算子必须是变量
- 作用:给变量加 1(++)或减 1(–)
- 等价关系:
- count++; 等价于 count += 1; 和 count = count + 1;
- count–; 等价于 count -= 1; 和 count = count – 1;
- 前缀与后缀区别:
| 给 count 加 1 | count++(后缀) | count 原来的值 |
| 给 count 加 1 | ++count(前缀) | count+1 以后的值 |
| 给 count 减 1 | count–(后缀) | count 原来的值 |
| 给 count 减 1 | –count(前缀) | count-1 以后的值 |
#include <stdio.h>
int main()
{
int price = 0;
printf("请输入金额(元)");
scanf("%d",&price);
int change = 100 – price;
printf("找您%d元\\n",change);
return 0;
}
#include <stdio.h>
int main()
{
int a;
int b;
printf("请输入两个整数:");
scanf("%d %d",&a,&b);
printf("%d + %d = %d\\n",a,b,a+b);
return 0;
}
#include <stdio.h>
int main()
{
printf("请分别输入身高的英尺和英寸,"
"请输入\\"5 7\\"表示五英寸七英尺");
double foot;
double inch;
scanf("%lf %lf",&foot,&inch);
printf("身高是%f米。\\n",
((foot + inch /12)*0.3048));
return 0;
}
#include <stdio.h>
int main()
{
int hour1, minute1;
int hour2, minute2;
scanf("%d %d", &hour1, &minute1);
scanf("%d %d", &hour2, &minute2);
int t1 = hour1 * 60 + minute1;
int t2 = hour2 * 60 + minute2;
int t = t2-t1;
printf("时间差是%d小时%d分。",t/60,t%60);
return 0;
}
#include <stdio.h>
int main()
{
int a=5;
int b=6;
int t;
t=a;
a=b;
b=t;
printf("a=%d,b=%d\\n",a,b);
return 0;
}



