问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

c++头文件中#define的作用11

发布网友 发布时间:2023-10-14 15:37

我来回答

5个回答

热心网友 时间:2024-12-01 11:11

1、*LinkList是定义一个LNode的指针变量,这样定义是没有实体的,需要new的
2、LinkList &L这个参数是传址参数,实际上和LinkList *L这样的指针参数的意义是一样的,这样写的话调用的时候可以方便一点
3、new的意思是声明一个新实例,然后将实例的地址赋值给指针,如果你仅仅只是声明一个指针,他是没有实体的,new的话可以给他一个新的实体,这个建议参考“面向对象编程”方面的章节,在使用完毕后还需要delete掉指针以释放实体
4、#define是C/C++特有的宏定义,在使用的时候会有很多方便的地方,此外系统也会定义一些参数,如WIN32、_cplusplus等,再配合#ifdef等宏可以方便程序员编写和调试程序,有很大的好处

PS:我总觉得你这段程序有问题,InitList_L的参数是LinkList,而new的是LNode,还有L->next应该改为L.next,只有指针参数才需要用->

热心网友 时间:2024-12-01 11:11

宏定义 简单的字符替换 在 编译前做的替换
#define THREE 3

int a = THREE;
在送编译时 替换为 int a = 3;

#define POWER(x) x * x
int a = POWER(10)
在送编译时 替换为 10 * 10
注意 若为 POWER(5 + 3) 则替换为 5 + 3 * 5 + 3
所以宏只是简单的文本替换

*LinkList 在typedef 的作用下 是LNode 的指针类型

也就是说申明LNode 指针的时候你可以用
LinkList p = 0;//等价于 LNode* p = 0;

new 动态分配内存空间

热心网友 时间:2024-12-01 11:12

C++中一般不用#define来定义常量或者函数
我觉得唯一用到的地方是在防止头文件重复包含的时候#ifndef...#define...#endif

你下面问的*LinkList是一个LNode结构的别名,同样可以用他来创建一个LNode结构对象.
C++里最好把结构,类什么的都看成对象.
LinkList &L,这里就不难理解了吧,LinkList 是对象类型(一个LNode的指针),&L是参数名(等于 &(*LNode) ).

L = new LNode;
new是C++的内建方法,用来开辟内存空间.这里就是为L分配一个LNode结构那么大的内存空间.

热心网友 时间:2024-12-01 11:13

正常情况下所有的头文件都是
#ifndef ....
#define

//头文件中的内容

#endif
上面的结构是为了不使头文件出现重复包含.
另一种 :
如 #define MAXNUM 500
#define abs(x) ((x)>0 ? (x) : -(x)
是宏.

你说的LinkList是LNode的指针,而&L是LinkList的引用,目的是把程序中分配的LNode返回。
new就是c中的malloc,动态分配一个LNode

热心网友 时间:2024-12-01 11:13

第一个问题:
#define是定义宏,楼上说避免使用是什么意思,你如果说GOTO避免使用我很赞同,但是定义宏是个很正常的使用啊。
第2个问题:
*LinkList 指针类型,在这里LinkList就想INT已经成为一个类型了,&L就是一种引用传参,保证传过去的是地址。
NEW就是开辟内存空间,比如 LinkList L 只是定义了一个指针型的变量L,但是指针如果要使用必须要开辟内存空间,所以还要加上 L = NEW LNode();
还有不明白的M我。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
请问昆山正仪到江苏省昆山市出口加工区新竹路99号 怎么坐班车最近? 跪求苏州神达电脑地址!!! 华为运动耳机挂脖式怎么配对 雅酷美挂脖式无线蓝牙防水耳机-运动时尚,自由畅听 已知函数f(x)=cos^2x-sin^2x+2根号3sinxcosx+1 原先微信有联系后来突然对方要求我对他进行朋友验证我没有他电话号码... 已知函数f(x)=cos^2x-sin^2x+2根号3sinxcosx 已知函数fx=cos^2*x-sin^2*x+2sinx*cosx,求fx的最小正周期,并求当... 已知函数f(x)=cos2x-sin2x 4sinx·cosx求f(x)的最小正周期,并求当x为... 已知f(x)=cos^2x-sin^x+2sinxcosx。①求函数最小正周期②当x∈【0... 在单片机c语言中_nop_()语句包含在哪个头文件当?46 中国人去朝鲜生活,待遇怎么样?21 我想去北朝鲜定居,大家觉得怎样样?81 建筑电气中的WC、CC、FC代表什么意思?1278 下图是一个工具箱,下半部分是一个宽20厘米、高25厘米的,长...16 天下3魂剑世界套肩,头,衣,腕用75轻焰,剩下的用玉水明沙,... 天下3 (60世界套升级到80世界套大概需要多少钱) (60...7 德国哥廷根大学全球排名靠前吗20 电脑刷机后不能使用WiFi? 火锅文化200 新怎么养号的最新相关信息120 乌鲁木齐所有的劳动部门投诉电话42 音响电路中如何选择合适电容49 给惠威音箱换了几个电容,效果鸟炸天 好听的大全77 为何高级音响会这么贵?40 客户收到货一直不给钱怎么办1 功放为什么很贵2 新注册的怎么养不会被封87 近视是戴框架眼镜好还是隐形的好?5 污水管道的衔接方式有哪几种16 怎样用手机申请887 新手机号码怎样申请558 怎样用自己手机帮人申请26 工商管理专业都能做什么工作啊?516 眼睛蛇泡酒能喝吗?1 花儿在阳光下开放了。改为拟人句1574 如何挑选好的电脑的音箱31 夜空最最闪亮的星意外坠楼是在哪一集4 连续三个1000kv变电站,中间变电站作用是什么呢,到底有没... 冰雪路面开车速度不易超过多少?75 朝鲜怎么样,我想去朝鲜生活一年3 朝鲜的生活水平是怎样的?163 我想去朝鲜生活,朝鲜找工作困难吗?13 朝鲜人民现在的生活水平怎么样啊?546 在c语言中调用dos,隐藏dos窗口,解释一下下面的代码为什...2 养殖百合花的步骤 一个新手机号怎么注册277 尔雅课程音乐鉴赏答案,标准答案1 黑塔利亚 伊万和白桦林的故事是什么?是不是和伊利亚有关?39