QueuePtr是指向队列结点的指针类型,那QueuePtr p和
p=(QueuePtr)malloc(sizeof(QNode))
这两句到底有什么区别呢,我不太明白,两种的用法意义是一样的么
求助C语言高手
答案:5 悬赏:60
解决时间 2021-03-12 18:53
- 提问者网友:你在我心中是最美
- 2021-03-11 22:26
最佳答案
- 二级知识专家网友:萌萌哒小可爱
- 2021-03-11 22:49
QueuePtr p和
p=(QueuePtr)malloc(sizeof(QNode));
两句当然有区别
用int来说明更好一点;
int *p
int *p=malloc(sizeof(int));
你觉得两句会一样么?
第一句 *p=5;//出错,没有初始化指针,使之指向一个确定的内存
第二句 *p=5;//正确
p=(QueuePtr)malloc(sizeof(QNode));
两句当然有区别
用int来说明更好一点;
int *p
int *p=malloc(sizeof(int));
你觉得两句会一样么?
第一句 *p=5;//出错,没有初始化指针,使之指向一个确定的内存
第二句 *p=5;//正确
全部回答
- 1楼网友:一个很哇塞的汉子
- 2021-03-12 02:07
int *p=malloc(sizeof(int));
你觉得两句会一样么?
第一句 *p=5;//出错,没有初始化指针,使之指向一个确定的内存
第二句 *p=5;//正确
- 2楼网友:转身→时光静好
- 2021-03-12 00:48
A
- 3楼网友:如果这是命
- 2021-03-12 00:35
前面是声明,后面是赋值啊
- 4楼网友:你把微笑给了谁
- 2021-03-11 23:28
您这是不是c++?
c++中函数参数有传值的(和c语言一样),另外还有传引用的(概念相当于pascal中的“变量参数”),但一般不允许对数组采用“传引用”。
arrays of references are illegal这句话的意思就是“传引用的数组是非法的”。
普通c语言中虽然都是“值传送”,但对数组有个特殊规定:形参如果是数组的形式,则并非传数组的值,而是传指针的值。所传的并非数组的内容,而是指向数组首元素的指针。
也就是说吧,定义f1(int a[])等效于定义f1(int * a)。
所以,c语言中形参如果是数组,则其实际作用等效于其他高级语言如pascal中的“变量参数”(即“传引用”)了。
所以,您把这里的&去掉,说不定就能实现您所希望的效果了。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯
• 手机登qq时,显示手机磁盘不足,清理后重新登 |
• 刺客的套装怎么选啊? |