ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

C语言学习第九天

C语言学习第九天

今天要学习的是二维数组剩下的知识,以及新的函数知识

一、二维字符型数组

//数组定义 //数据类型 数组名[行数][列数] char a[2][3]

1. 二维字符数组可以理解为由一维数组构成的一维数组

2.元素访问

str[0][2] 访问单个字符元素 char str[0] 访问第一行字符数组 char [32]

3. 最常用的初始化

char str[][32] = {"hello", "world", "how", "are","you"};

4. 对5个字符串进行比较,并排序(冒泡排序)

#include<stdio.h> #include<string.h> int main(void) { int i = 0; int j = 0; char str[5][32] = {0}; char temp[32] = {0}; for(i = 0 ;i < 5;i++) { gets(str[i]); } for(j = 0 ;j < 4;j++) { for(i = 0;i< 4-j;i++) { if(strcmp(str[i],str[i+1]) > 0) { strcpy(temp,str[i]); strcpy(str[i],str[i+1]); strcpy(str[i+1],temp); } } } for(i = 0;i < 5;i++) { printf("str[%d] = %s\n",i,str[i]); } return 0; }

二、函数

1.定义

函数类型 函数名(数据类型1 形参1, 数据类型2 形参2, ...) { 函数体; return 返回值; }

2.调用

函数名(实参1, 实参2, ...);

3.声明

1.如果被调函数在主调函数下方定义,需要在主调函数上方声明被调函数

2.如果被调函数在主调函数上方定义,不需要声明被调函数

4. 变量的作用域和生存周期

1. 变量的作用域

- 局部变量:变量作用域在定义该变量最近的大括号内

- 全局变量:变量的作用域在本文件中均可使用

2.生存周期

变量从被开辟空间到空间被回收的整个过程称为生存周期

5.变量存储类型

1.定义

存储类型 数据类型 变量名; int a; auto int a;

2.存储类型

1. 自动型存储、局部变量(默认):auto

- 将变量存放在栈区
- 局部变量未经初始化为随机值
- 执行到变量定义时为变量开辟空间
- 执行到超过变量作用域范围被回收

2. 寄存器存储:register

- 将变量存放在CPU内部的寄存器中,如果寄存器存满了等价于auto类型

3. 外部声明:extern

- 声明变量或者函数是外部存储的

4. 静态存储:static

- 将变量存放在静态区中
- 未经初始化时值为0值
- 编译代码时为变量分配空间,执行时加载到数据区中
- 程序结束回收空间
- 限定变量/函数作用域只能在本文件中使用
- 防止多文件编程时变量名或函数名冲突

6.内存结构(便于理解变量的存储)

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进