目录
九、指针
1.指针变量的定义和初始化
2.间接寻址符*
3.按值调用和按址调用
4.实例
5.函数指针
6.指针变量和其它类型变量的对比
十、字符串
1.字符串常量
2.字符串的存储
3.字符指针
4.字符串的访问和输入/输出
5.字符串处理函数
(1)strlen(计算字符串长度)
(2)strcpy(字符串复制)
(3) strcat(字符串连接)
(4)strcmp(字符串比较)
(5)实例
(6)其它函数
6.向函数传递字符串
7.自己实现字符串处理函数
(1)MyStrcpy
(2)MyStrlen
(3)MyStrcat
十一、 指针和数组
1.指针和一维数组的关系
2.指针和二维数组的关系
3.指针或数组参数传参注意
4.指针数组
gets和puts的使用
5.指针数组用来表示命令行参数
6.C程序的内存映像
7.动态内存分配函数
十二、结构体
1.结构体类型的声明
2.结构体变量的定义
3.用typedef定义数据类型
4.结构体变量的初始化
5.嵌套的结构体
6.结构体变量的引用
7.结构体所占内存的字节数
8.结构体数组的定义和初始化
9.结构体指针的定义和初始化
10.向函数传递结构体
十三、共用体
十四、枚举数据类型
九、指针
1.指针变量的定义和初始化
指针变量使用之前必须初始化
2.间接寻址符*
引用指针所指向的变量的值称为指针的解引用
3.按值调用和按址调用
指针变量作函数参数可以修改实参的值
4.实例
当函数需要给回主函数两个或两个以上参数时,无法使用return返回值进行返回,就可以采用指针变量传参的方式
5.函数指针
使用函数指针
6.指针变量和其它类型变量的对比
十、字符串
1.字符串常量
2.字符串的存储 
3.字符指针
4.字符串的访问和输入/输出
对于scanf来说,空格、回车或制表(Tab)符是输入数据的分隔符,因而不能被读入,输入遇到这些字符时,系统认为字符串输入结束
例如:
fgets()
函数的最大读取大小是其“第二个参数减1
”,这是由于字符串是以’\0’
为结束符的,fgets()
为了保证输入内容的字符串格式
,当输入的数据大小超过了第二个参数
指定的大小的时候,fgets()
会仅仅读取前面的“第二个参数减1
”个字符,而预留1个字符
的空间来存储字符串结束符’\0’
5.字符串处理函数
(1)strlen(计算字符串长度)
结果是5
(2)strcpy(字符串复制)
(3) strcat(字符串连接)
(4)strcmp(字符串比较)
(5)实例
(6)其它函数
6.向函数传递字符串
7.自己实现字符串处理函数
(1)MyStrcpy
(2)MyStrlen
(3)MyStrcat
十一、 指针和数组
1.指针和一维数组的关系
数组名是一个常量指针,不能修改该指针的指向
指针可当数组名使用
2.指针和二维数组的关系
行地址
列地址
行指针
列指针
二维数组传入函数
3.指针或数组参数传参注意
4.指针数组
gets和puts的使用
1、gets() 的作用是从键盘上读取字符串,跟scanf() 相似,但又有所不同。
gets() 函数的用法:
gets(字符串的首地址);
例:
char str [20]; .
gets(str);
须要注意的是:
(1) gets() 可以接收空格、Tab键, 碰到回车键输入才结束;而scanf碰到空格、回车、Tab键 都会结束输入。
(2) gets() 和scanf() 都不能检测越界。
2、puts() 的作用是 向显示屏输出字符串并换行。
用法:
puts (字符串的首地址) ;
例:
char[]=" helloworld";
pus(str);
printf需要添加"\n'用来换行,而puts在 输出的时候会将字符串末尾的\0'自动换成\n'
5.指针数组用来表示命令行参数
6.C程序的内存映像
7.动态内存分配函数
malloc()
calloc
十二、结构体
1.结构体类型的声明
这时还没有声明结构体变量
2.结构体变量的定义
3.用typedef定义数据类型
4.结构体变量的初始化
5.嵌套的结构体
6.结构体变量的引用
7.结构体所占内存的字节数
8.结构体数组的定义和初始化
9.结构体指针的定义和初始化
10.向函数传递结构体
例题
十三、共用体
十四、枚举数据类型