C语言必背符号大全:30个关键符号助你快速上手编程

C语言必背符号大全:30个关键符号助你快速上手编程

🎓博主介绍:精通 C、Python、Java、JavaScript 等编程语言,具备全栈开发能力。日常专注于分享编程干货、算法解析、项目实战经验,以及前沿技术动态。让我们一起在技术的道路上不断探索,共同成长!

C语言必背符号大全:30个关键符号助你快速上手编程

1. 引言

C语言作为一门广泛应用于系统编程、嵌入式开发等众多领域的编程语言,其丰富的符号体系构成了代码的基础。掌握这些关键符号,是快速上手C语言编程的重要一步。本文将详细介绍30个C语言中必背的关键符号,通过对每个符号的含义、用法及示例代码的讲解,帮助技术人员更好地理解和运用这些符号。

2. 算术运算符

2.1 +(加法运算符)

含义:用于两个数相加。用法:可以用于整数、浮点数等类型的加法运算。示例代码:

#include

int main() {

int a = 5;

int b = 3;

int sum = a + b;

printf("两数之和为: %d\n", sum);

return 0;

}

2.2 -(减法运算符)

含义:用于两个数相减。用法:可对整数、浮点数进行减法运算,也可作为取负运算符。示例代码:

#include

int main() {

int a = 5;

int b = 3;

int diff = a - b;

printf("两数之差为: %d\n", diff);

return 0;

}

2.3 *(乘法运算符)

含义:用于两个数相乘。用法:适用于整数和浮点数的乘法。示例代码:

#include

int main() {

int a = 5;

int b = 3;

int prod = a * b;

printf("两数之积为: %d\n", prod);

return 0;

}

2.4 /(除法运算符)

含义:用于两个数相除。用法:当操作数为整数时,执行整除运算;当至少有一个操作数为浮点数时,执行普通除法。示例代码:

#include

int main() {

int a = 5;

int b = 2;

int quot_int = a / b;

float quot_float = (float)a / b;

printf("整数除法结果: %d\n", quot_int);

printf("浮点数除法结果: %f\n", quot_float);

return 0;

}

2.5 %(取模运算符)

含义:用于求两个整数相除的余数。用法:操作数必须为整数。示例代码:

#include

int main() {

int a = 5;

int b = 2;

int rem = a % b;

printf("两数相除的余数为: %d\n", rem);

return 0;

}

3. 赋值运算符

3.1 =(简单赋值运算符)

含义:将右边表达式的值赋给左边的变量。用法:左边必须是变量,右边可以是常量、变量或表达式。示例代码:

#include

int main() {

int num;

num = 10;

printf("num的值为: %d\n", num);

return 0;

}

3.2 +=(加法赋值运算符)

含义:先将左边变量与右边表达式的值相加,再将结果赋给左边变量。用法:例如a += b 等价于 a = a + b。示例代码:

#include

int main() {

int a = 5;

int b = 3;

a += b;

printf("a的值为: %d\n", a);

return 0;

}

3.3 -=(减法赋值运算符)

含义:先将左边变量减去右边表达式的值,再将结果赋给左边变量。用法:例如a -= b 等价于 a = a - b。示例代码:

#include

int main() {

int a = 5;

int b = 3;

a -= b;

printf("a的值为: %d\n", a);

return 0;

}

3.4 *=(乘法赋值运算符)

含义:先将左边变量与右边表达式的值相乘,再将结果赋给左边变量。用法:例如a *= b 等价于 a = a * b。示例代码:

#include

int main() {

int a = 5;

int b = 3;

a *= b;

printf("a的值为: %d\n", a);

return 0;

}

3.5 /=(除法赋值运算符)

含义:先将左边变量除以右边表达式的值,再将结果赋给左边变量。用法:例如a /= b 等价于 a = a / b。示例代码:

#include

int main() {

int a = 6;

int b = 3;

a /= b;

printf("a的值为: %d\n", a);

return 0;

}

3.6 %=(取模赋值运算符)

含义:先将左边变量对右边表达式的值取模,再将结果赋给左边变量。用法:例如a %= b 等价于 a = a % b。示例代码:

#include

int main() {

int a = 5;

int b = 2;

a %= b;

printf("a的值为: %d\n", a);

return 0;

}

4. 关系运算符

4.1 >(大于运算符)

含义:判断左边表达式的值是否大于右边表达式的值。用法:返回值为1(真)或0(假)。示例代码:

#include

int main() {

int a = 5;

int b = 3;

int result = a > b;

printf("a是否大于b: %d\n", result);

return 0;

}

4.2 <(小于运算符)

含义:判断左边表达式的值是否小于右边表达式的值。用法:返回值为1(真)或0(假)。示例代码:

#include

int main() {

int a = 5;

int b = 3;

int result = a < b;

printf("a是否小于b: %d\n", result);

return 0;

}

4.3 >=(大于等于运算符)

含义:判断左边表达式的值是否大于或等于右边表达式的值。用法:返回值为1(真)或0(假)。示例代码:

#include

int main() {

int a = 5;

int b = 5;

int result = a >= b;

printf("a是否大于等于b: %d\n", result);

return 0;

}

4.4 <=(小于等于运算符)

含义:判断左边表达式的值是否小于或等于右边表达式的值。用法:返回值为1(真)或0(假)。示例代码:

#include

int main() {

int a = 3;

int b = 5;

int result = a <= b;

printf("a是否小于等于b: %d\n", result);

return 0;

}

4.5 ==(等于运算符)

含义:判断两个表达式的值是否相等。用法:返回值为1(真)或0(假)。示例代码:

#include

int main() {

int a = 5;

int b = 5;

int result = a == b;

printf("a是否等于b: %d\n", result);

return 0;

}

4.6 !=(不等于运算符)

含义:判断两个表达式的值是否不相等。用法:返回值为1(真)或0(假)。示例代码:

#include

int main() {

int a = 5;

int b = 3;

int result = a != b;

printf("a是否不等于b: %d\n", result);

return 0;

}

5. 逻辑运算符

5.1 &&(逻辑与运算符)

含义:当两个操作数都为真时,结果为真;否则为假。用法:常用于条件判断中。示例代码:

#include

int main() {

int a = 5;

int b = 3;

int result = (a > 2) && (b < 5);

printf("逻辑与结果: %d\n", result);

return 0;

}

5.2 ||(逻辑或运算符)

含义:当两个操作数中至少有一个为真时,结果为真;只有当两个操作数都为假时,结果为假。用法:常用于条件判断。示例代码:

#include

int main() {

int a = 5;

int b = 3;

int result = (a > 10) || (b < 5);

printf("逻辑或结果: %d\n", result);

return 0;

}

5.3 !(逻辑非运算符)

含义:对操作数取反,真变为假,假变为真。用法:常用于条件判断。示例代码:

#include

int main() {

int a = 5;

int result = !(a > 10);

printf("逻辑非结果: %d\n", result);

return 0;

}

6. 位运算符

6.1 &(按位与运算符)

含义:对两个操作数的对应位进行与运算,只有当对应位都为1时,结果位才为1。用法:常用于位操作。示例代码:

#include

int main() {

int a = 5; // 二进制表示为 0101

int b = 3; // 二进制表示为 0011

int result = a & b; // 结果为 0001,即十进制的 1

printf("按位与结果: %d\n", result);

return 0;

}

6.2 |(按位或运算符)

含义:对两个操作数的对应位进行或运算,只要对应位中有一个为1,结果位就为1。用法:常用于位操作。示例代码:

#include

int main() {

int a = 5; // 二进制表示为 0101

int b = 3; // 二进制表示为 0011

int result = a | b; // 结果为 0111,即十进制的 7

printf("按位或结果: %d\n", result);

return 0;

}

6.3 ^(按位异或运算符)

含义:对两个操作数的对应位进行异或运算,当对应位不同时,结果位为1;相同时为0。用法:常用于位操作。示例代码:

#include

int main() {

int a = 5; // 二进制表示为 0101

int b = 3; // 二进制表示为 0011

int result = a ^ b; // 结果为 0110,即十进制的 6

printf("按位异或结果: %d\n", result);

return 0;

}

6.4 ~(按位取反运算符)

含义:对操作数的每一位取反,0变为1,1变为0。用法:常用于位操作。示例代码:

#include

int main() {

int a = 5; // 二进制表示为 0101

int result = ~a;

printf("按位取反结果: %d\n", result);

return 0;

}

6.5 <<(左移运算符)

含义:将操作数的二进制位向左移动指定的位数,右边空出的位用0填充。用法:相当于将操作数乘以2的指定次幂。示例代码:

#include

int main() {

int a = 5; // 二进制表示为 0101

int result = a << 2; // 左移 2 位,结果为 010100,即十进制的 20

printf("左移结果: %d\n", result);

return 0;

}

6.6 >>(右移运算符)

含义:将操作数的二进制位向右移动指定的位数,左边空出的位根据符号位填充(正数补0,负数补1)。用法:相当于将操作数除以2的指定次幂。示例代码:

#include

int main() {

int a = 20; // 二进制表示为 010100

int result = a >> 2; // 右移 2 位,结果为 000101,即十进制的 5

printf("右移结果: %d\n", result);

return 0;

}

7. 其他关键符号

7.1 ;(分号)

含义:用于表示语句的结束。用法:在C语言中,每条语句都必须以分号结尾。示例代码:

#include

int main() {

int num = 10; // 语句以分号结尾

printf("num的值为: %d\n", num); // 语句以分号结尾

return 0;

}

7.2 {}(大括号)

含义:用于定义代码块,将多条语句组合在一起。用法:常用于函数体、控制结构等。示例代码:

#include

int main() {

{

int a = 5;

int b = 3;

int sum = a + b;

printf("两数之和为: %d\n", sum);

}

return 0;

}

7.3 ()(小括号)

含义:用于改变运算符的优先级,也用于函数调用时传递参数。用法:在表达式中合理使用小括号可以明确运算顺序。示例代码:

#include

int add(int a, int b) {

return a + b;

}

int main() {

int result = add(3, 5); // 函数调用时传递参数使用小括号

printf("两数之和为: %d\n", result);

return 0;

}

7.4 ,(逗号运算符)

含义:用于分隔多个表达式,整个逗号表达式的值为最后一个表达式的值。用法:常用于初始化多个变量或在一条语句中执行多个操作。示例代码:

#include

int main() {

int a, b;

a = 3, b = 5; // 使用逗号运算符初始化多个变量

int sum = (a++, b++, a + b); // 逗号表达式,先执行 a++ 和 b++,再计算 a + b 的值

printf("sum 的值为: %d\n", sum);

return 0;

}

在上述代码中,逗号运算符将多个表达式连接在一起,并且最终返回最后一个表达式的值。在(a++, b++, a + b)这个逗号表达式里,先对a和b进行自增操作,然后计算自增后a与b的和,该和值即为整个逗号表达式的值。

7.5 *(指针解引用运算符和乘法运算符)

含义:当作为指针解引用运算符时,用于获取指针所指向的变量的值;当作为乘法运算符时,用于两个数相乘。用法:在指针操作中,通过指针解引用可以访问和修改指针所指向的内存中的数据;在算术运算中,进行乘法计算。示例代码:

#include

int main() {

int num = 10;

int *ptr = # // 定义一个指针指向 num 的地址

int product = 2 * *ptr; // 这里第一个 * 是乘法运算符,第二个 * 是指针解引用运算符

printf("num 的值为: %d\n", *ptr);

printf("2 乘以 num 的结果为: %d\n", product);

return 0;

}

在这段代码中,*ptr通过指针解引用获取了num的值,而2 * *ptr中的第一个*是乘法运算符,用于计算 2 与*ptr(即num的值)的乘积。

7.6 &(取地址运算符)

含义:用于获取变量的内存地址。用法:在定义指针时,常常使用取地址运算符将变量的地址赋给指针变量。示例代码:

#include

int main() {

int num = 20;

int *ptr;

ptr = # // 使用取地址运算符获取 num 的地址并赋给指针 ptr

printf("num 的地址为: %p\n", (void *)&num);

printf("ptr 存储的地址为: %p\n", (void *)ptr);

return 0;

}

代码中,&num获取了num变量的内存地址,然后将该地址赋值给指针ptr。使用%p格式化输出地址时,需要将地址强制转换为void *类型。

7.7 ->(箭头运算符)

含义:用于通过指针访问结构体或联合体的成员。用法:当有一个指向结构体或联合体的指针时,可以使用箭头运算符直接访问其成员,而不需要先解引用指针再使用点运算符。示例代码:

#include

// 定义一个结构体

struct Student {

char name[20];

int age;

};

int main() {

struct Student s = {"Alice", 20};

struct Student *ptr = &s;

printf("学生姓名: %s\n", ptr->name); // 使用箭头运算符访问结构体成员

printf("学生年龄: %d\n", ptr->age);

return 0;

}

在这个例子中,ptr是一个指向struct Student类型结构体的指针,通过ptr->name和ptr->age可以直接访问结构体的成员,等同于(*ptr).name和(*ptr).age,但使用箭头运算符更加简洁。

7.8 .(点运算符)

含义:用于访问结构体或联合体变量的成员。用法:当有一个结构体或联合体变量时,使用点运算符来访问其成员。示例代码:

#include

// 定义一个结构体

struct Point {

int x;

int y;

};

int main() {

struct Point p = {3, 5};

printf("点的 x 坐标: %d\n", p.x); // 使用点运算符访问结构体成员

printf("点的 y 坐标: %d\n", p.y);

return 0;

}

在上述代码中,p是一个struct Point类型的结构体变量,通过p.x和p.y可以分别访问结构体中的x和y成员。

7.9 #(预处理符号)

含义:在C语言的预处理阶段,#用于引入预处理指令,如#include用于包含头文件,#define用于定义宏等。用法:在源文件的开头或需要使用预处理指令的地方使用#符号。示例代码:

#include // 使用 #include 预处理指令包含标准输入输出头文件

#define PI 3.14 // 使用 #define 预处理指令定义宏

int main() {

double radius = 2.0;

double area = PI * radius * radius;

printf("半径为 %.2f 的圆的面积为: %.2f\n", radius, area);

return 0;

}

在这个例子中,#include 将标准输入输出头文件包含进来,使得程序可以使用printf等函数;#define PI 3.14定义了一个宏PI,在后续代码中可以直接使用PI来代表 3.14。

7.10 ##(预处理连接符)

含义:在预处理阶段,##用于将两个标识符连接成一个新的标识符。用法:通常在宏定义中使用,将宏参数和其他标识符连接起来。示例代码:

#include

#define CONCAT(a, b) a##b

int main() {

int num12 = 100;

int result = CONCAT(num, 12); // 宏展开后为 num12

printf("result 的值为: %d\n", result);

return 0;

}

在这个代码里,CONCAT是一个宏,使用##将宏参数a和b连接成一个新的标识符。在CONCAT(num, 12)中,宏展开后就变成了num12,从而可以访问对应的变量。

8. 结论

掌握这30个C语言中的关键符号,是快速上手C语言编程的重要基础。从基本的算术运算符到复杂的预处理符号,每个符号都有其独特的用途和意义。通过不断地学习和实践,熟练运用这些符号,能够让你更加高效地编写C语言代码,实现各种功能。希望本文所介绍的内容能帮助你在C语言编程的道路上迈出坚实的一步。

相关推荐

365bet体育在线世界杯 “风蝉断还续( fēng chán duàn huán xù )” 宋 ·陆游
亚洲365bet日博 发现5提车一周体验

发现5提车一周体验

📅 06-29 👁️ 6290
365bet体育在线世界杯 梦幻西游为什么停144 144怎么玩