C语言习题第七、8、9、12章注意
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
注意:
1、函数的定义形式:(牢记)
函数返回值类型名函数名(类型名形参1,形参2)
{说明部分
语句部分}
(1)在同一程序中,函数名必唯一
在同一函数中,形参名唯一,但可与其它函数中的变量同名
(2)不能在函数内部定义函数
(3)函数首部省略函数返回值类型名,则默认为int型
(4)函数必须先定义(或说明),后调用
(5)函数不能嵌套定义,但可嵌套调用
2、函数返回值的注意事项:
(1)return中的函数值必须与函数首部说明的类型一致。若不一致,则以返回的函数值为准
(2)若有多个return,只取最前一个。
3、函数调用
(1)实参必须与形参一一匹配,若不匹配,按赋值兼容的原则自动匹配。即实参值转换成形参的类型。
4、函数说明形式(记住)
(1)类型名函数名(参数类型1,参数类型2……)
(2)类型名函数名(参数类型1<参数名>,参数类型2 <参数名>……)
<>表示可省略项
(3)函数说明的位置注意一下:
5、参数传递:永远是值传递,即:只有实参向形参传递,形参不能回传给实参。因为形参只是临时存储单元,调用完后即被释放。
1、变量地址和指针
(1)每个变量地址是其所占存储单元的第一个字节的地址
(2)直接存取、间接存取概念
2、指针变量定义和指针变量的基类型
(1)形式(牢记)类型名*指针变量名1
如:int pi,pj;
基类是int
(2)指向指针的指针变量
如:int **p 是:指针变量p的基类型是基类型为int类型的指针类型
(3)指针变量为何要有基类型?P94
3、给指针变量赋值
(1)&求地址运算符只能用于变量及数组元素(被说明了register的变量除外),且&运算对象和指针变量基类必须相同
4、给指针赋空值
如:p=NULL (解释) P95
等价于:p=’\0’或p=0
5、对指针变量的操作
如:j=*(&a)的意思和j=*&a等同
注意:当*p在赋值左边时,代表的是指针所指的存储单元,当*p出现在右边时,是取其内容
6、移动指针
(1)移动指针只能进行加或减
(2)基类必须一致,若不一致,系统以基类为准
7、函数间地址值的传递
形参、实参类型必须匹配
8、函数可返回地址值
第9章(一维数组部分)
1、一维数组的定义
类型名数组名[整型常量表达式]
注意:整型常量
2、一维数组元素的引用
引用形式:数组名[下标表达式]
(1)1个数组元素就是一个变量
(2)数组不能整体引用
(3)数组名是地址常量,代表数组首地址
3、一维数组初始化
(1)当所赋初值少于定义数组的元素个数时,将自动给后面元素补0
对于字符数组同样补’\0’
(2)当所赋初值多于定义数组元素时,报错
(3)数组说明符一对括号可不指定大小
4、一维数组和数组元素的地址
(1)不能给数组名重新赋值,只因是常量
(2)如:a+k也是元素地址
5、通过数组首地址引用数组元素
a[1]=*(a+1) ……. 以此类推
6、通过指针引用一维数组元素
(1)p=a *(p+1) …..以此类推
*(p+1)不能写成*p+1
7、用带下标的指针变量引用一维数组元素
(1)[] 方括号是一种运算符
(2)s[I] *(s+I) *(p+I) p[I]等同
(3)s不可变,p可变
8、数组名作实参
(1)数组名作实参其对应的形参有三种形式(等同)
arrin(int *a)
arrin(int a[])
arrin(int a[m])
(2)调用函数只是把数组首地址传给形参指针,即还是“值”传递,即单向传递9、函数的指针形参和函数体中数组区别见书P114-115最后
第12章
1、局部变量全局变量和存储分类
(1)局部变量可说明成自动类或静态类
(2)全局变量只能是静态类
2、局部变量及其作用域和生存期
(1)当函数内部或复合语句内定义变量,如未定存储类,即为auto类,其作用域就在内部(2)register变量也是自动类变量,它与auto变量区别在于register存在CPU寄存器中,而auto存在内存单元
(3)不能对register变量求地址运算,因为放在寄存器内,不是放在内存中,故无地址。
3、静态存储类局部变量
(1)静态局部变量(static)占据永久存储单元
(2)静态局部变量的初值在编译时就赋予了如未赋具体值则系统自动为它赋0
4、全局变量作用域和生存期
(1)全局变量作用域是:从变量定义的位置开始、到整个源文件结束。
(2)若全局变量与某函数局部变量同名,则在该函数中此全局变量被屏蔽。
5、在同一编译单位内用extern说明符扩展全局变量的作用域。
(1)全局变量定义只能一次,但说明可多次出现
6、静态全局变量
(1)静态全局变量只限于本编译单位