第六章:常量、宏、枚举及函数 第七章:数组、字符串
来源:互联网 发布:教育部网络培训中心 编辑:程序博客网 时间:2024/05/29 09:27
这周是第二周,本周学习了第六章、第七章以及第八章的前半部分。
第六章:常量、宏、枚举及函数
常量的定义:
1.宏定义:#define 常量名 值 例如:#define PI 3.14
PS:常量名大写,没有赋值符号(=),没有分号结尾
2.const定义:const 数据类型 常量名 =值;例如:const int count = 5;
枚举:
1. 枚举的声明定义:enum 枚举名{元素};例如:enum today{mom,thus,…};
2. 枚举的使用: enum day= mom;
3. 枚举默认从0开始,也可以给它定义初始值,后面的元素在前面元素的值加1.
函数:
1. 什么叫函数:可以实现特定功能的代码块。
2. 函数声明:返回值类型 函数名(形式参数);例如:int fun(int x, int y);
3. 函数实现:返回值类型 函数名(形式参数){函数体}
a) 例如:int fun (intx, int y){函数体} (ps:有返回值类型的函数,需要返回值,且类型相同)
4. 参数
a) 形式参数(形参):函数声明实现中带的参数。
b) 实际参数(实数):函数调用时使用。
5. 变量
a) 局部变量:
i. 作用域:从声明开始,到该函数结束被释放。(在条件分支或者循环内:从声明开始,到分支或循环结束被释放)。
ii. 存储类型:
1. auto(自动型):默认形式,从声明到函数结束被释放。
2. static(静态型):第一次被声明,之后被保持,直到程序结束被释放。
3. register(寄存器型):类似于auto,有些编译器不支持。
iii.
b) 全局变量:
i. 作用域:从声明开始,变量后面到函数都可以使用,程序结束被释放。
ii. 存储类型:
1. 无修饰符:作用在本类,且可以被扩展到其他类中使用。
2. static(静态型):全局静态变量,不可以被扩展。
3. extern(扩展型):从其它类中扩展变量到本类中使用。
6. 函数递归
a) 递归:就是自己调用自己本身叫递归。
b) 直接递归:自己调用自己本身。
c) 间接递归:自己调用别人,别人调用自己本身。
d) 迭代(循环)与递归
i. 递归代码精简,但消耗系统资源大。
ii. 可以递归,也可以迭代的,使用迭代。
宏定义函数:
1.定义:#define 宏定义函数名 函数名或表达式
例如:#define PRINTF(x)(x)*(x)
PS:宏定义函数,要注意,后面的表达式的每个变量需要用括号括起来
第七章:数组、字符串
一维数组:
1.一维数组
a) 声明赋值:数据类型 数组名[数组大小]; 例如:int arr[] = {1,2,3,4,5,6};
b) 数组名就是数组首元素的地址
c) 数组的访问:数组名[下标];例如:arr[0] = 1;//数组第一个元素。数组的下标是从0 开始,到元素个数减1结束。
2. 数组作为函数参数:
a) 作为形式参数时,数组的大小可以省略。例如:void fun(int a[]);
b) 作为实际参数时,只需要传入数组名既可。例如:fun (arr);
c) 数组作为参数,在函数内部改变数组的值时,函数外作为实际参数的数组的值也会跟着改变。
字符串:
1.字符串
d) 字符串也叫字符数组,是由n个字符组成的。
e) 声明定义:char str[大小] = “abcd”; 或 char str[] ={‘a’,’b’,’c’,’\0’}
f) 字符串的访问类似数组。格式化符号:%c、%s。
g) 字符串结束标志符号:’\0’。
h) 字符串的输入
函数
作用
Getchar()
输入单个字符
Putchar()
输出单个字符
Scanf()
输入字符(%s)
Printf()
输出字符 (%s,%c)
Gets()
输入字符串
Puts()
输出字符串
i) 字符串函数
函数
作用
Strcpy(str1,str2)
函数复制,将str2复制到str1中,且str1的大小要大于等于str2
Strcat(str1,str2)
将str2写入到str1的尾部
Strlen(str)
计算字符串的长度
Strcmp(str1,str2)
字符串的比较,从字符串的第一个字符开始比较,比较字符的ASCII码值,str1大于str2,返回大于0,相等返回0,小,返回小于0
j)
二维数组
1. 声明赋值:
a) int arr[2][3] ={“1,2,3”,”4,5,6”};
b) int arr[2][3] = {1,2,3,4,5,6};
2. 访问:arr[0][0]; //前面表示行,后面表示列,访问也是通过下标访问。
3. 二维数组就是一维数组的数组。
4. 二维数组作为参数时,行可以省略,但列不能省略
a) 例如:void fun(intarr[][3]);
第七章易错点:
1. 声明数组时,忘记在数组名称后面加中括号
2. 使用数组时,访问的下标超出数组的大小,并不存在数组
3. 忘记给数组初始化,就使用数组。
4. 字符串忘记考虑结束符 ’\0’。
5. 用系统函数,没有添加函数所在的库的头文件:string.h、stype.h、stdilb.h。
- 第六章:常量、宏、枚举及函数 第七章:数组、字符串
- 第六章 常量、宏、枚举及函数
- 【C】【笔记】《C和指针》 第六章 指针 第七章 函数 第八章 数组 第九章 字符串、字符和字节
- C常量,宏,枚举及函数
- C语言之第六章 常量 宏 函数
- 第七章 数组与字符串
- 第七章 数组和字符串
- 第七章 数组与字符串
- 第六章:数组和字符串
- C语言随堂笔记----常量、宏,枚举及函数
- 第七章第六题
- 字符数组、字符串及常量字符串详解
- 局部常量字符串指针及常量字符串数组 返回值
- C语言 第七章 数组与字符串
- 第六章:枚举理解
- 第七章:函数、第八章:数组
- 第六章第七章学习
- 第七颗头骨 第六章
- mybatis批量插入、批量删除
- Win8.1下的 Dll注入测试
- apache出现open_basedir错误
- 命令行中java和javac、javap使用详解(java编译命令)
- android应用中常用的监听OnTouchListener、OnClickListener、OnLongClickListener
- 第六章:常量、宏、枚举及函数 第七章:数组、字符串
- 逐渐深入地理解Ajax
- cut命令,awk命令与sed命令
- hdu 1548 A strange lift
- 优化命题的对偶性(Duality)
- oracle聚簇
- cc2430的中文资料
- CGContextAddArc与CGContextAddArcToPoint参数解析
- Animation介绍加动画属性的详解