C 语言基础语法主要包括以下几个方面:
一、数据类型
-
基本数据类型
- 整型:
int
:通常占用 4 个字节,表示整数范围一般为 -2147483648 到 2147483647。short
:通常占用 2 个字节,整数范围较小。long
:可以是 4 个字节或 8 个字节,具体取决于编译器,用于表示更大范围的整数。long long
:通常占用 8 个字节,用于表示更大范围的整数。
- 浮点型:
float
:单精度浮点数,通常占用 4 个字节,精度约为 6 到 7 位有效数字。double
:双精度浮点数,通常占用 8 个字节,精度约为 15 到 16 位有效数字。
- 字符型:
char
:通常占用 1 个字节,用于表示单个字符。可以用 ASCII 值表示字符,例如char c = 'A';
。
- 整型:
-
派生数据类型
- 数组:一组相同类型元素的集合。例如
int arr[5];
定义了一个包含 5 个整数的数组。 - 指针:存储变量地址的变量。例如
int *ptr;
声明了一个指向整数的指针。 - 结构体:可以将不同类型的变量组合在一起。例如:
- 数组:一组相同类型元素的集合。例如
c
Copy
struct Person {
char name[50];
int age;
};
- 联合体:与结构体类似,但所有成员共享同一块内存空间。
二、变量与常量
-
变量
- 变量在使用前必须先声明,声明包括变量的类型和名称。例如
int a;
声明了一个整数变量a
。 - 变量可以在声明的同时进行初始化。例如
int b = 10;
。 - 变量的作用域可以是局部的(在函数内部)或全局的(在所有函数外部声明)。
- 变量在使用前必须先声明,声明包括变量的类型和名称。例如
-
常量
- 常量在程序运行过程中其值不能改变。
- 可以使用
const
关键字定义常量。例如const int MAX_VALUE = 100;
。 - 也可以使用宏定义来定义常量。例如
#define PI 3.14159
。
三、运算符
-
算术运算符
+
(加法)、-
(减法)、*
(乘法)、/
(除法)、%
(取余)。- 例如
int c = 5 + 3;
,int d = 10 % 3;
。
-
关系运算符
==
(等于)、!=
(不等于)、<
、>
、<=
、>=
。- 用于比较两个值,返回一个布尔值(真或假)。例如
if (a > b) {... }
。
-
逻辑运算符
&&
(与)、||
(或)、!
(非)。- 用于组合或否定布尔表达式。例如
if (a > 0 && b < 10) {... }
。
-
赋值运算符
=
(简单赋值)、+=
、-=
、*=
、/=
等。- 例如
a += 5;
相当于a = a + 5;
。
-
其他运算符
sizeof
:返回变量或类型的大小(以字节为单位)。例如sizeof(int)
返回int
类型占用的字节数。&
(取地址)、*
(解引用指针)。例如int *ptr; int a = 10; ptr = &a;
,这里&a
取得变量a
的地址,*ptr
则是解引用指针,得到变量a
的值。
四、控制语句
- 条件语句
if
语句:根据条件执行不同的代码块。例如:
c
Copy
if (a > b) {
// 代码块
}
if - else
语句:如果条件为真执行一个代码块,否则执行另一个代码块。例如:
c
Copy
if (a > b) {
// 代码块 1
} else {
// 代码块 2
}
switch
语句:根据不同的情况执行不同的代码块。例如:
c
Copy
switch (choice) {
case 1:
// 代码块 1
break;
case 2:
// 代码块 2
break;
default:
// 默认代码块
break;
}
- 循环语句
for
循环:用于已知循环次数的情况。例如:
c
Copy
for (int i = 0; i < 10; i++) {
// 代码块
}
while
循环:当条件为真时重复执行代码块。例如:
c
Copy
while (a < b) {
// 代码块
}
do - while
循环:先执行一次代码块,然后当条件为真时重复执行。例如:
c
Copy
do {
// 代码块
} while (condition);
- 跳转语句
break
:用于跳出循环或switch
语句。continue
:用于跳过当前循环的剩余部分,直接进入下一次循环。return
:用于从函数中返回一个值。
五、函数
- 函数定义
- 函数由返回类型、函数名、参数列表和函数体组成。例如:
c
Copy
int add(int a, int b) {
return a + b;
}
- 返回类型可以是任何基本数据类型或派生数据类型,如果函数不返回任何值,则返回类型为
void
。
- 函数调用
- 通过函数名和实际参数来调用函数。例如:
c
Copy
int result = add(3, 4);
- 参数传递
- 值传递:将实际参数的值复制一份传递给函数的形式参数。在函数内部对形式参数的修改不会影响实际参数的值。
- 引用传递:通过指针或引用作为参数,可以在函数内部修改实际参数的值。
六、输入输出
- 使用
stdio.h
头文件中的函数进行输入输出。printf
函数用于输出格式化的文本。例如:
c
Copy
printf("Hello, World!\n");
int a = 10;
printf("a = %d\n", a);
scanf
函数用于从用户输入读取数据。例如:
c
Copy
int b;
scanf("%d", &b);
七、注释
- 单行注释:以
//
开头,直到行尾。例如:// 这是一个单行注释
。 - 多行注释:以
/*
开头,以*/
结尾。例如:
c
Copy
/*
这是一个多行注释
可以跨越多行
*/