1.C语言概述
一个C语言源程序可以由多个或一个源文件组成。
每个源文件可由一个或多个函数组成。
一个源程序只能有一个main主函数。
源程序有预处理命令,预处理命令通常放在源文件或源程序的最前面。
每一个说明,每一个语句都由分号结尾。
标识符,关键字之间必须至少添加一个空格已示间隔。
2.基本数据类型
2.1数据类型介绍
整数类型:
bool:布尔类型,只有true和false,常用于逻辑判断。
char:字符类型,通常占一个字节,可表示ASCLL字符(如:'a'=97),也可作为小整数使用,有符号时范围约 -128 ~ 127 ,无符号时0-255。
short:短整型,占两个字节,范围-32768-32767或0-65535(无符号)。
int:整型,占 4 个字节,范围约 -2147483648 ~ 2147483647 (有符号)或 0 ~ 4294967295 (无符号 unsigned int )。
long :长整型,占 4 或 8 个字节(取决于平台,Windows 下通常 4 字节,类 Unix 系统常 8 字节),有符号范围更大,无符号版本为 unsigned long 。
ong long :长整型(C++11 及以后支持),占 8 个字节,范围约 -9223372036854775808 ~ 9223372036854775807 (有符号),无符号版本 unsigned long long 。
浮点类型:
用于表示带有小数部分的实数,基于科学计数法存储:
float :单精度浮点型,占 4 个字节,有效数字约 6 - 7 位,精度较低,适合对精度要求不高的场景。
double :双精度浮点型,占 8 个字节,有效数字约 15 - 17 位,精度较高,是浮点运算的常用类型。
long double :扩展精度浮点型,占 8、10 或 16 个字节(取决于平台),精度比 double 更高,但兼容性和性能可能稍差。
2.2数据类型大小
cpp
#incldue<stdio.h>
int main(){
printf("char size: %d\n",sizeof(char));//1
printf("short size: %d\n",sizeof(short));//2
printf("int size: %d\n",sizeof(int));//4
printf("long int size: %d\n",sizeof(long int));//4
printf("long long size: %d\n",sizeof(long long));//8
printf("float size: %d\n",sizeof(float));//4
printf("double size: %d\n",sizeof(double));//8
printf("bool size: %d\n",sizeof(bool));//8
}
字节是计算机信息技术用于计量存储的一种计量单位,一个字节8位二进制构成。
2.3标识符,变量,常量
标识符
命名规则:
**字符组成:**标识符只能由字母(包括大写字母 A-Z 和小写字母 a-z )、数字( 0-9 )和下划线( _ )组成。
**开头字符:**标识符必须以字母或者下划线开头,不能以数字开头。比如 age 、 _name 是正确的开头方式,而 2num 不符合规则。
**关键字和保留字:**不能使用 C++ 中的关键(如 if 、 else 、 int 、 class 、 for 等 )和保留字作为标识符。这些词汇在 C++ 语言中有特定的语法含义,被语言本身占用。例如,不能定义变量名为 if ,否则会导致语法错误。
**大小写敏感:**C++ 是大小写敏感的语言,这意味着标识符中字母的大小写是有区别的。 myVar 和 myvar 被视为两个不同的标识符。
常量与变量
变量:变量是以标识符为名字,其数值可以改变。
变量作用域:
每一个变量名有一个作用域。
1.全局变量:定义在函数外的变量。
2.局部变量:定义在函数内的变量。
3.程序块中的变量:在函数内部,再复合语句中定义变量。
常量:常量其值不可改变。
计算三角形面积简单代码示例:
cpp
#include<stdio.h>
#include<math.h>
int main(){
float a=0.0f;
float b=0.0f;
float c=0.0f;
float d=0.0f;
float e=0.0f;
float f=0.0f;
scanf("%f %f %f",&a,&b,&c);
d=(a+b+c)/2;
e=aqrt(d*(d-a)*(d-b)*(d-c));
printf("a=%f \n",e);
return 0;
}
3.标准输入输出语句
3.1输入语句scanf
定义: scanf 是 C 语言标准库中用于从标准输入(如键盘)读取数据的函数,定义在 <stdio.h> 头文件中,核心作用是按指定格式接收用户输入并存储到变量中。
基本语法:scanf("格式控制字符串", &变量1, &变量2, ...);
格式控制字符串:用占位符(如 %d 、 %f )指定要读取的数据类型,可包含普通字符(需原样输入)。
占位符 | 对应数据类型 | 说明 |
---|---|---|
%d | int (整型) | 读取十进制整数 |
%c | char (字符型) | 读取单个字符(包括空格、回车) |
%f | float (单精度浮点) | 读取小数(输入时可写 3.14 ) |
%lf | double (双精度浮点) | 读取高精度小数 |
%s | char[] (字符串) | 读取字符串(遇空格 / 回车停止) |
变量地址:必须传入变量的地址(用 & 符号获取,数组名除外),确保数据能正确写入变量。
3.2输出语句printf
printf 是 C 语言标准库中用于向标准输出(如控制台)打印数据的函数,同样定义在 <stdio.h> 头文件中,核心作用是按指定格式输出变量或常量。
基本语法:printf("格式控制字符串", 表达式1, 表达式2, ...)。
格式符字符串:用占位符指定输出数据的类型和格式,可包含普通字符(直接原样输出)。
占位符 | 对应数据类型 | 说明 |
---|---|---|
%d | int (整型) | 输出十进制整数 |
%c | char (字符型) | 输出单个字符 |
%f | float / double | 输出小数(默认保留 6 位小数) |
%s | char[] (字符串) | 输出字符串 |
%x | int (整型) | 以十六进制(小写)输出整数 |
%% | - | 输出百分号( % 本身) |
4运算符
4.1赋值运算符
运算符 | 名称 | 示例 | 等价写法 |
---|---|---|---|
= | 简单赋值 | a = 5; | - |
+= | 加后赋值 | a += 3; | a = a + 3; |
-= | 减后赋值 | a -= 2; | a = a - 2; |
*= | 乘后赋值 | a *= 4; | a = a * 4; |
/= | 除后赋值 | a /= 2; | a = a / 2; |
%= | 取余后赋值 | a %= 3; | a = a % 3; |
4.2算术运算符
运算符 | 名称 | 示例 | 说明 |
---|---|---|---|
+ | 加法 | a + b | 计算两数之和 |
- | 减法 | a - b | 计算两数之差 |
* | 乘法 | a * b | 计算两数之积 |
/ | 除法 | a / b | 整数除法会截断小数(如 5/2=2 ),浮点数除法保留小数( 5.0/2=2.5 ) |
% | 取余 | a % b | 求两数相除的余数,仅支持整数(如 5%2=1 ) |
++ | 自增 | a++ / ++a | a++ 先使用 a 再 + 1, ++a 先 + 1 再使用 |
-- | 自减 | a-- / --a | 与自增类似,仅操作是 - 1 |
4.3关系运算符
运算符 | 名称 | 示例 | 说明 |
---|---|---|---|
== | 等于 | a == b | 判断两值是否相等(注意不是 = ) |
!= | 不等于 | a != b | 判断两值是否不相等 |
> | 大于 | a > b | 判断 a 是否大于 b |
< | 小于 | a < b | 判断 a 是否小于 b |
>= | 大于等于 | a >= b | 判断 a 是否大于或等于 b |
<= | 小于等于 | a <= b | 判断 a 是否小于或等于 b |
4.4逻辑运算符
运算符 | 名称 |
---|
|------|-----|
| && | 逻辑与 |
|---|-----|
| ! | 逻辑非 |
|----|-----|
| | | 逻辑或 |
4.5条件运算符
条件运算符(三目运算符)
格式: 条件 ? 表达式1 : 表达式2 功能:若条件为真,执行表达式 1;若为假,执行表达式 2(可简化 if-else 逻辑)
逗号运算符( , )
格式: 表达式1, 表达式2, ..., 表达式n 从左到右依次执行所有表达式,最终结果取最后一个表达式的值。
取地址运算符( & )与解引用运算符( * )
& :获取变量的地址(如 &a 表示变量 a 在内存中的地址),常用于 scanf 或指针定义。
* :解引用指针,获取指针指向的变量的值(如 *p 表示指针 p 指向的变量的值)。
运算符优先级(核心规则)
运算符优先级决定了表达式中操作的执行顺序,优先级高的先执行;若优先级相同,按 "结合性"(左结合 / 右结合)执行。关键优先级排序(从高到低):
- 括号 () (最高)
- 自增 / 自减 ++ / -- 、取地址 & 、解引用 *
- 算术运算符( * / / / % 高于 + / - )
- 关系运算符( > / < / >= / <= 高于 == / != )
- 逻辑运算符( ! 高于 && , && 高于 || )
- 条件运算符 ? :
- 赋值运算符( = / += / -= 等,最低)
ACSll值表

