范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

一起学C程序设计第九课预处理和动态分配内存

  这节课作为前几课的补充扩展,来让初学者了解更多的C语言的特性。 一个是C语言的预处理(预编译)命令,一个是动态分配内存,补充上节课的指针。预处理命令
  C程序在编译的阶段,一般预先处理一些事情,称之为预处理或者预编译阶段。这个时候只对源码做一些转换处理,并不涉及内存分配,和编译阶段做的事情完全没有关联。合理的使用预处理命令能使程序更加灵活可控,还具备很好的可移植性。
  C语言预处理
  宏定义
  一般在文件的开头使用宏定义,定义常量也属于宏定义。宏定义标识符只做编译前的源文件字符替换,不参与编译过程。 普通宏定义如常量: #define STRING value 可以进行表达式代替值,比如先定义 #define A 1 之后可以再定义#define B A+1 带参数的宏定义, #define ADD(x,y) x+y ,源文件可以ADD(1,2)这样调用
  条件编译
  顾名思义,条件编译指源文件中的代码有条件的参与编译,不满足条件不会参与编译,这与C语言中的if语句有类似的作用,但是有明显的区别:if语句不管满不满足条件都参与编译,在程序执行过程中去判断执行;条件编译则在预编译阶段把不满足条件的代码剔除掉,减少了编译的语句,也就没有了在程序执行过程中的判断逻辑。 #ifdef STRING...#else...#endif ,其中else可以省略,如果定义了STRING则执行#ifndef STRING...#else...#endif ,与上面相反,如果没有定义STRING则执行
  文件包含
  C语言用include来包含文件,即将另一个文件合并到当前文件中,include两种用法: #include  ,一般包含的是系统的库函数头文件#include "file" ,一般包含用户自定义的文件
  预编译时,遇到尖括号优先去系统目录查找,遇到双引号优先去用户项目目录查找,所以根据引用的文件来决定使用尖括号还是双引号,可以节约查找时间,节约预编译的时间。 动态分配内存
  void类型指针
  先说void类型的指针,这种特殊的指针类型不表示任何数据类型,在使用时根据需要做数据类型的转换,如: void *p; int *p2 = (int*) p;
  C语言void指针
  开辟动态内存
  使用malloc()函数来申请一段固定长度的内存空间,返回的是一个void指针,在使用的时候可以直接定义一个基础类型的指针,然后给其赋值,C语言在编译的时候会自动把void指针转换为你定义的指针类型,如: int *p = malloc(sizeof(int));
  使用calloc()函数来申请n个连续的固定长度的内存空间,定义好之后根据指针的移动,可以轻松传递一个数组进去。
  重新定义内存
  使用realloc()函数来为已经申请内存的指针变量重新分配内存空间。先看如下示例:
  realloc()函数示例
  上面代码中,由于对p2做了运算(p2++),所以在重新分配内存的时候要把p2的指针指向初始位置,即p2-3的位置。对于realloc()的使用总结一下几点: 第一个指针参数必须指向已申请内存的首地址 重新分配内存空间后,如果失败则返回NULL realloc()第一个参数可以是NULL,这样使用相当于直接开辟新内存空间,和malloc()、calloc()功能一样 realloc()可以"嵌套调用",也就是已经被重新分配的空间还可以再次重新分配
  释放内存
  使用free()函数释放上面三个函数申请的内存空间,和realloc()一样,需要保证指针地址指向内存空间的初始值。 总结
  预处理命令在第三版有章节介绍,而第五版删除了,但是我们要知道有这个东西,能读懂别人的代码,因为这种预处理命令在C语言中很常见。
  关于指针要多练习,使用时要小心,结合动态分配内存去理解并加以运用。有任何疑惑的地方,最好的方法还是借助于Visual Studio去验证自己的理解和想法,遇到搞不懂的地方多去网上搜寻资料,要有刨根问底的劲儿! 往期文章
  一起学《C程序设计》第八课——指针
  一起学《C程序设计》第七课——函数及实战练习
  一起学《C程序设计》第六课——数组、字符串及实战练习
  一起学《C程序设计》第五课——循环控制及实战练习
  一起学《C程序设计》第四课——if语句、switch语句及实战练习

鸿蒙3。0系统适配升级机型中没有荣耀,彻底分家还是偷偷升级?因为华为由于某些原因不得以将荣耀分离出去,独立出来的荣耀目前看来发展还算光明,但是鸿蒙系统还是一个重点。这一次更新手机之中,没有荣耀的任何一款手机,我隐约记得之前承诺过在华为没有和任泽平当下不投新能源,就像20年前没买房2022年新能源汽车产业链投资年会,由中国汽车工业协会常州市金坛区人民政府新财富等共同举办。经济学家任泽平博士发表主旨演讲在当下,新能源相关的产业是未来中国经济最有希望的,最具爆发5000mAh电池骁龙888Plus,8128G仅1599元,摩托罗拉真实在要说性价比,红米手机可以说是当之无愧的王者,无论是入门级别的Note系列还是中端机型K系列,自成立以来就一直凭借着极高的性价比获得了广大网友们的喜爱同时也占据着极大一部分市场份额。手机里面根本没有这个大块头的容身之地,但是这一次,不太一样了前段时间,机哥在地铁站见到了一台战损成色的OPPOFindX。真的非常战损各种掉漆。我都不忍心拍下来。而在看到这台手机之后几天里的另一个新闻,让我有种想要把它重新拿出来用用的冲动。浅析HVA技术传统软屏液晶显示技术的再一次革新液晶电视有着纤薄的外观,轻巧的身段,省电环保。从2004年开始,在国内市场普及开来,历经多年不断发展和技术进步,直至今日依然焕发着青春。尽管OLED技术电视近年来有着试图取而代之的蔚小理一季度财报蔚来营收最高,小鹏销量最高,理想净亏最少6月9日,蔚来汽车(09866。HKNIO。US)发布2022年一季报,成为蔚小理三家造车新势力中最晚的一家。红星资本局对比蔚小理一季报发现,蔚来汽车的营收最高,且是唯一环比增长的03惨败!本田圭佑执教的柬埔寨又输了,扬言5年内击败国足太荒唐还记得本田圭佑那句我要率领柬埔寨队5年之内击败中国男足吗?现在来看,这句话恐怕将会成为一个笑话!因为本田圭佑执教的柬埔寨别说击败国足,他们连中国香港队都踢不赢!在本轮结束的亚洲杯预不太平的亚马逊,出路在何方?风紧,扯呼!如果大洋彼岸的亚马逊懂得中国文化,现在应该对这句话深有感触。但是,对于亚马逊来说,这两年真的是实实在在的不太平。去年5月,亚马逊创始人,被中国卖家称为姐夫的杰夫贝索斯卸元气森林死磕出海,踩坑无数,总结出一堆硬核经验撰文财经天下周刊作者吴天编辑陈芳近年来,各种各样的国内企业纷纷出海,涉及餐饮科技电商游戏社交美妆等多个领域,在这些出海的国货企业眼中,出海是大势所趋,能够极大地提升品牌的品牌力。这魅族易主,李书福入局21世纪经济报道记者骆轶琪广州报道曾经的小而美手机公司魅族科技终于确认了被收购的进展。6月13日下午,国家市场监督管理总局反垄断执法二司官网公示信息披露了这一股权交易的走向,魅族科星期一收盘评测本日数据今日上证指数下跌了29。28点,报收于3255。55。两市总成交量10907亿,比昨天增加了403亿。北向资金今天净卖出135。19亿,为本月首次出现净卖出。行业板块方面主
开讲啦!天心经开区为企业开办信用建设专题培训培训会现场。红网时刻新闻4月14日讯(记者李奕潜通讯员刘苗)我承诺严格依照国家有关法律法规合法经营,保证经营合法安全有效的产品,重合同,守信用。4月14日,长沙天心经开区开展营造优中国环卫行业首个全场景试验基地在长沙启用湖南日报4月13日讯(全媒体记者黄利飞通讯员伏婧)高枝修剪车伸长手臂灵活剪下多余树杈,物料粉碎车迅速将树杈收集粉碎转运今天,在盈峰环境长沙产业园,中国环卫行业首个全场景试验基地正式宁德时代将于上海车展发布新一代凝聚态电池,如何猜想?今年以来,全球动力电池龙头宁德时代在电芯材料上推陈出新的速度让人应接不暇。继磷酸铁锂材料升级版M3P电池后,凝聚态电池又要来了。4月12日下午,宁德时代官方宣布,将于4月19日在上美元要跌?股票会涨?黄金怎么看?美联储加息尽头,美元是要跌了吗?中国股市到了好的买点吗?涨了又涨的黄金,会不会继续涨?昨天,渣打银行财富管理部发布了2023年第二季度全球市场展望,主题是因时而变,行稳致远。报告预元丰电控毛利率降仍远超同行向关联公司采购价格偏低来源中国经济网中国经济网编者按武汉元丰汽车电控系统股份有限公司(以下简称元丰电控)将于4月19日首发上会,拟登陆深交所创业板,保荐机构为中国银河证券股份有限公司,保荐代表人为袁志伟以太坊上海升级的消息为什么不卖?正如一些人预测的那样,抵押的ETH并没有大量解锁,这对以太坊和流动性抵押衍生品来说是个好兆头。从数字来看,似乎许多以太(ETH)利益相关者已决定保留他们的代币。尽管几位分析师预测刚美媒开心了中国买1218亿美国债券!刚抛1700亿,为何反手买入?2022年过去后,我国在这一年累计抛售了1732亿美债,短短一年抛售如此多美债,这也刷新了我国抛售美债的历史纪录。其实不仅是我国,就连日本在2022年也抛售了2245亿美债。除了多一票难求或将再现!五一假期火车票明起开售,这些问题需要注意今天,记者从铁路部门了解到,根据火车票预售规则,从4月15日起,铁路部门将发售4月29日即五一假期首日的火车票。如果你计划在假期到来的前一天(4月28日)动身,今天就可以买票了!假壹点数说五一想去自驾游,开着新能源车能去哪?五一临近,齐鲁晚报齐鲁壹点根据问卷调研,推荐两条自驾游路线,春光无限,驾驶新能源汽车,自驾去旅行吧!后附目的地城市及路线的充电桩地点,注意关注哦。(基于省内车展观众来源城市近半为济新尚东方迎花海香遇峨眉山踏青峨眉山漫步于花路,为进一步复苏旅游业,最近,大峨眉文旅发展联盟携手携程旅行网在上海东方明珠广播电视塔城市广场举办中国四川峨眉山文旅上海推介会。现场以多种形式展示了各地特色资源文好消息!多地旅游专列开始运行,特别适合长辈出游近年来,随着旅游业的不断发展和铁路交通的不断完善,旅游专列已成为一种受欢迎的旅游方式,尤其是适合中老年人出游。在全国各地,旅游专列已经成为连接各大景点的一种交通方式,例如山东淄博有