- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
指针常量与常量指针
Int *P;指向普通整形指针
Int const *p 指向整形常量的指针,指针指向可以改变,但指针指向的值不能改变。
Int *const P指向整形的常指针,指针指向不能改变,但指针指向的值可以改变。
Int const *const P指向整形常量的常指针,指针指向和指针指向的值均不可改变。
?
extern与static区别
作用范围:extern作用于多个文件,类似于头文件,static变量则只在本文件中有效(.c文件)。
声明方式:声明为extern的变量,程序会从别的.c文件中寻找或本文件的mian函数之外的地方找。若在多个文件中声明,则会出错。
?
?
static在本文件中声明,.c文件中有效,初始化一次.
?
break/continue/goto loop
break:可以使程序运行时中途跳出循环体,即:强制结束循环,接着执行循环体下面的语句。但break仅对循环结构起作用,如for ,while,switch等,对if语句不起作用,且break一次只能跳出一层循环结构。
continue:结束本次循环,即跳出循环体中下面尚未执行的语句,接着进行下一次是否执行循环的判定。
Goto loop 用于跳跃,一般可用于多层循环结构,从内层的循环结构跳到外面一个位置,并继续执行loop后面的语句。
区别:continue只是结束本次循环,而不终止整个循环的执行,break则强制终止整个循环过程。
位移操作符
左移n位,左侧丢弃n位,右侧添加n位0
右移n位,两种方案:方案一 逻辑移位 左侧补上n位0,方案二 算术移位,左移补上n位(0还是1取决于符号位) 如:c,d,同样右移1位,c增加,d减少
复合运算符
逗号表达式
?
指针与地址
获取变量所对应的地址,*访问指针变量所表示的地址。
**d=b; a-b-d
?
可变参数列表
stdarg宏
可变参数的限制
?
指针和下标
应用:数组赋值或者初始化等涉及到数组下标问题时均可以换成指针,来提高运行效率。
?
结构体自引用
?
?
?
结构体不完整声明
?
结构体访问时,-和.号的用法,-是间接访问符号,指针指向结构体,访问结构体成员变量,而.号则为结构体访问,并没有指针参与进来。
?
函数(结构体)运行效率远小于函数(结构体指针),原因:前一种按照C语言参数传递方式要将参数的一份拷贝传递给函数,而后一种则不需要,但可能存在成员变量被修改的危险,所以可以加上const,为进一步提高效率,也可声明为寄存器指针register.
?
位段好处:
1.能够把长度为奇数的数据包装在一起,节省存储空间,当程序需要使用上千种结构时,使用此法很重要。
2.很方便的访问整形值得部分内容,如磁盘控制器。
malloc分配连续内存,若内存申请成功,返回指向该内存的起始位置的指针,否则返回NULL,因此任意malloc函数,都要对其返回值进行检查确保内存申请成功。
MALLOC宏接受元素的数目能及每种元素的类型,计算总共需要的内存字节数,并调用alloc获得内存。alloc调用malloc并进行检查,确保返回的指针不是NULL。
第一个非比寻常的#define指令,防止因其他代码块直接塞入程序而豆儿直接调用的malloc行为,增加该条指令后,若程序偶尔调用了malloc,程序将因语法错误而无法编译。在alloc中必须加入#undef指令,才能调用malloc而不出错。
警告:
1.不要访问已经被释放的内存,假如你对一个指向动态内存的指针复制了几份分布于程序各处,你无法保证使用其中一个指针时其内存没有被其他指针释放。
2.必须保证内存释放之前,所有指向该内存的指针停止使用。
3.内存不用后,一定要释放,防止内存泄漏!
#define NAME stuff
#define宏
警告:1.尽量不要使用define宏定义函数,如下#define SQUARE(x) x*x
但a=5;return SQUARE(a+1);结果为11; a+1*a+1
宏和函数
1.宏定义比函数效率和规模上更胜一筹。
2.函数必须指定参数类型,如下,函数很难实现。
3.注意宏参数的副作用,如:
替换成:
较大的值自加两次,较小的值自加一次。
其他指令
错误报告
errno
?
流I/O总览
fopen函数
r:只读,w:只写,+:增加一功能,如r+可读写,w+可读写,b:二进制方式
a:附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 (原来的EOF符不保留)
fseek函数
fseek(fp,long offset,int fromwhere),
HYPERLINK /view/1606305.
您可能关注的文档
- 【金学案】高三生物二轮课件第一部分知识落实篇专题五生命活动的调节植物的激素调节.ppt
- 【金学案】高中历史岳麓必修课件第单元北美大陆上的新体制.ppt
- 【金学案】广东省高中生物学业水平测试课件必修第单元配子的形成过程和受精过程.ppt
- 【金学案】广东省高中生物学业水平测试课件必修第单元物质出入细胞的方式.ppt
- 【金学案】广东省高中生物学业水平测试课件必修第单元植物的激素调节.ppt
- 【金学案同步备课】学高中语文达标巩固(人教选修中国文化经典研读)麻叶洞天].doc
- 【精】高考生物必修一总复习.ppt
- 【精品】八位抢答器的设计.doc
- 【精品】毕业设计(论文)数据采集系统设计.doc
- 【精品】甘肃旅游资源.ppt
最近下载
- 境内医疗器械变更注册申报资料电子目录(参考) .pdf VIP
- 结核分枝杆菌合并乙型肝炎病毒感染诊治专家共识.pptx
- 中纤板电器基础详解.ppt VIP
- 社交礼仪——饮茶礼仪(课件-PPT).pptx VIP
- 基础护理学说课-姜丽.ppt VIP
- 河南诗词大赛题库及答案2024.doc VIP
- 2024年新版全员消防安全知识培训【附最新案例】(77页).pptx VIP
- NB/T 35054-2015_水电工程过鱼设施设计规范.pdf
- (完整版)无菌医疗器械耗材生产企业体系文件 质量手册模板.pdf VIP
- 2025-2026学年小学信息技术(信息科技)三年级上册湘科版(2024)教学设计合集.docx
原创力文档


文档评论(0)