c语言学习--1
c语言学习–1
欢迎来到c语言学习,本篇是c语言学习的第一篇,主要介绍c语言的基础知识,包括c语言规范 、变量、常量、运算符、控制语句、函数、数组、字符串等。
一,c语言规范
以下是阿里c语言规范
1. 缩进
- 使用空格进行缩进,每次缩进4个空格
- 代码块的分界符(如大括号)前后都需要加空格
- 条件语句、循环语句、函数定义等语句的左大括号前不加空格,右大括号独占一行
1 | if (condition) { |
2. 命名
- 变量名、函数名、宏定义等遵循驼峰命名法,如
myVariable、myFunction、MY_MACRO等 - 常量名、宏定义等全部大写,单词之间用下划线分隔,如
MY_CONSTANT、MAX_VALUE等 - 函数名和变量名不要使用保留字
1 | int myVariable = 10; |
3. 注释
- 使用
//进行单行注释,使用/* */进行多行注释 - 注释内容要简洁明了,不要包含多余的空格或换行符
- 注释要放在代码的上方或右侧,不要放在代码的中间或下方
1 | // 这是一个单行注释 |
4. 代码风格
- 代码风格要统一,不要混用不同的风格
- 代码行长度不要超过80个字符,超过的部分可以使用换行符进行分割
- 代码块之间要留出空行,以增加可读性
1 | int myVariable = 10; |
5. 代码审查
- 在代码提交之前要进行代码审查,检查代码是否符合规范,是否存在错误或漏洞
- 学会使用ai
- 代码审查时要关注代码的可读性、可维护性、安全性等方面
6. 避免魔法数字
- 避免在代码中使用魔法数字,即直接使用数字常量,而是使用有意义的变量或常量来代替
- 这样可以提高代码的可读性和可维护性
1 | // 魔法数字 |
7. 避免重复代码
- 避免在代码中重复编写相同的代码,可以使用函数、宏定义、模板等手段来减少重复代码
- 这样可以提高代码的可读性和可维护性
1 | // 重复代码 |
二,变量
变量是程序中用于存储数据的容器。在C语言中,变量必须先声明后使用,并且每个变量都有一个特定的类型,用于指定它可以存储的数据类型。
声明变量时,需要指定变量的类型和变量名。例如,以下代码声明了一个名为myVariable的整数变量:
1. 整数
这里先了解数字在电脑的存储方式
例如:
3:00000011
-3:11111101
这里的首位是符号位,0表示正数,1表示负数
当为unsigned 时,就没有符号位
一个字节(8位)可以表示256个数,-128~127
像int 4个字节,二进制位数为32位,可以表示2^32个数,-2^31~2^31-1
| 类型 | 存储大小 | 描述 |
|---|---|---|
| int | 4字节 | 32位有符号 |
| short int | 2字节 | 16位有符号 |
| unsigned int | 4字节 | 32位无符号 |
| unsigned short int | 2字节 | 16位无符号 |
| long long int | 8字节 | 64位有符号 |
| unsigned long long int | 8字节 | 64位无符号 |
2. 浮点数
| 类型 | 存储大小 | 范围 |
|---|---|---|
| float | 4字节 | 1.2E-38 到 3.4E+38 |
| double | 8字节 | 2.3E-308 到 1.7E+308 |
| long double | 16字节 | 3.4E-4932 到 1.1E+4932 |
1 | float myFloatVariable; |
3. 字符
| 类型 | 存储大小 | 范围 |
|---|---|---|
| char | 1字节 | -128 到 127 或 0 到 255 |
1 | char myCharVariable; |
4. 布尔值
| 类型 | 存储大小 | 范围 |
|---|---|---|
| _Bool | 1字节 | 0 或 1 |
1 | _Bool myBoolVariable; |
5. 指针
上面基础数据类型加*就是指针类型,指针是指向内存地址的变量,用于存储变量的地址。指针类型由基础数据类型加上*号表示,例如:
1 | int* myVariable; |
三,常量
常量是程序中固定不变的值,一旦定义就不能修改。在C语言中,常量可以分为字面常量和符号常量。使用const关键字可以定义常量。
1. 字面常量
字面常量是直接在代码中出现的常量值,例如:
1 | const int myVariable = 10; |
2. 符号常量
符号常量是通过#define指令定义的常量,例如:
1 |
四,运算符
运算符是用于对变量和常量进行运算的符号。C语言中包含多种运算符,包括算术运算符、关系运算符、逻辑运算符、位运算符等。
| 运算符 | 描述 | 类型 |
|---|---|---|
| + | 加法运算符 | 算术运算符 |
| - | 减法运算符 | 算术运算符 |
| * | 乘法运算符 | 算术运算符 |
| / | 除法运算符 | 算术运算符 |
| % | 取模运算符 | 算术运算符 |
| == | 等于运算符 | 关系运算符 |
| != | 不等于运算符 | 关系运算符 |
| > | 大于运算符 | 关系运算符 |
| < | 小于运算符 | 关系运算符 |
| >= | 大于等于运算符 | 关系运算符 |
| <= | 小于等于运算符 | 关系运算符 |
| && | 逻辑与运算符 | 逻辑运算符 |
| ! | 逻辑非运算符 | 逻辑运算符 |
| & | 按位与运算符 | 位运算符 |
| | | 按位或运算符 | 位运算符 |
| ^ | 按位异或运算符 | 位运算符 |
| ~ | 按位取反运算符 | 位运算符 |
| << | 左移运算符 | 位运算符 |
| >> | 右移运算符 | 位运算符 |
优先级:算术运算符 > 关系运算符 > 逻辑运算符 > 位运算符
五,控制语句
控制语句用于控制程序的执行流程,包括条件语句、循环语句和跳转语句。
1. 条件语句
条件语句用于根据条件的真假来执行不同的代码块。C语言中常用的条件语句有if、if-else和switch。
1 | if (condition) { |
1 | switch (expression) { |
2. 循环语句
循环语句用于重复执行一段代码块。C语言中常用的循环语句有for、while和do-while。
1 | for (initialization; condition; increment) { |
1 | while (condition) { |
1 | do { |
注意,do-while循环至少会执行一次代码块,而while循环可能一次也不执行。
3. 跳转语句
跳转语句用于改变程序的执行流程,包括break、continue和goto。
1 | break; // 跳出循环 |
六,函数
函数是一段可重复使用的代码块,用于执行特定的任务。C语言中函数分为库函数和用户自定义函数。
1. 库函数
库函数是C语言标准库中提供的函数,可以直接在程序中使用,例如printf、scanf等。
1 | printf("Hello, world!\n"); |
2. 用户自定义函数
用户自定义函数是用户根据需要编写的函数,用于执行特定的任务。函数的定义包括函数名、参数列表和函数体。
1 | int add(int a, int b) { |
这里的int表示函数的返回类型,add是函数名,(int a, int b)是参数列表,return a + b是函数体。
调用函数时,需要提供与函数定义中参数列表匹配的参数。例如:
1 | int result = add(3, 4); |
这里的add(3, 4)是函数调用,将3和4作为参数传递给add函数,并将返回值赋给result变量。
注意,函数使用的是值传递,即函数内部对参数的修改不会影响到函数外部的变量。如果需要修改参数的值,可以使用指针或引用。具体在指针讲述。
七,数组
1 | int myArray[10]; // 声明一个包含10个整数的数组 |
变长数组
1 | int n = 10;//这里要C99标准 |
1 | int* myArray=(int*)malloc(sizeof(int)*n); // 声明一个包含n个整数的数组5个整数的数组,并初始化, 这里可以不用c99标准 |
多维数组
1 | int myArray[3][4]; // 声明一个3行4列的二维数组 |
注意,你可能听说不省略写数组长度,但是只有第一维可以省略,其他维数不能省略,例如:
1 | int myArray[][4]; // 声明一个3行4列的二维数组 |
八,字符串
在C语言中,字符串是由字符组成的数组,以空字符(‘\0’)结尾。字符串可以存储在字符数组中,例如:
1 | char myString[] = "Hello, world!"; |
注意,字符串的长度包括空字符,因此上面的字符串长度为13。
字符串操作函数:
strlen:计算字符串的长度,不包括空字符。strcpy:复制字符串。strcat:连接字符串。strcmp:比较字符串。strchr:查找字符串中的字符。
严格意义将,字符串不是一种数据类型,而是一种字符数组。在其他编程语言中,字符串才是一种单独的数据类型,例如Python中的字符串。
你可以想想’\0’的妙用。
结语
c语言学习篇一结束,你已经掌握了c语言的几乎所有基础知识,下一篇可以开始学习指针、结构体、文件操作等。
注意,c语言学习可以考练习,要多练习写代码。(推荐上力扣 刷题)





