2 ceye1992 ceye1992 于 2016.04.28 18:02 提问

这里面出了什么问题呢?为什么这个函数没有作用

将一个新项目插入到一个链表中,我设计了这个函数但是发现没有任何作用

#include

struct entry
{
int date;
struct entry *next;
};

void insertEntry (struct entry beInsert, struct entry insert)
{

beInsert.next = insert.next;
insert.next = &beInsert;

}

int main(void)
{
struct entry n1, n2, n3, n4;

struct entry *listStar = &n1;  //开头

n1.date = 10;
n1.next= &n2;

n2.date = 20;
n2.next = &n3;

n3.date = 30;
n3.next = (struct entry *)0;  //结尾

n4.date = 50;


insertEntry(n4, n2);

// n4.next = n2.next; 这两行是函数运行的模式,不用函数直接运行能得到结果
//n2.next = &n4;

while(listStar != (struct entry *)0)
{
    printf("%i\n", listStar->date);
    listStar = listStar->next;
}


return 0;

}


1个回答

asd001110
asd001110   2016.05.03 00:07

其实这个问题仔细想想和我们c教程里的交换a,b值是一样的,首先,你传过去的是一个值给了形参,形参在函数里进行了一系列操作后
返回就释放掉了,相当于什么也没干。
在这里使用指针进行操作就可以了。
struct entry
{
int date;
struct entry *next;
};
void insertEntry (struct entry *beInsert, struct entry *insert)
{
beInsert->next = insert->next;
insert->next = beInsert;
}
int main(void)
{
struct entry n1, n2, n3, n4;
struct entry *listStar = &n1; //开头

n1.date = 10;
n1.next= &n2;

n2.date = 20;
n2.next = &n3;

n3.date = 30;
n3.next = (struct entry *)0; //结尾

n4.date = 50;

insertEntry(&n4, &n2);
// n4.next = n2.next; 这两行是函数运行的模式,不用函数直接运行能得到结果
//n2.next = &n4;
while(listStar != (struct entry *)0)
{
printf("%i\n", listStar->date);
listStar = listStar->next;
}

system("pause");

return 0;
}

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Fpspread控件使用手册
Fpspread1控件使用手册 对于spread控件各项属性的设置有比较清楚详细的说明
IT行业面试非技术问题
这个资料非常适合没有面试经验的IT准从业人员,里面列出了面试可能遇到的一些非技术问题,比如你为什么选择到这个城市工作,你为什么选择做这个行业啊
计算机网络讨论 有例题
1.有人认为:“ARP协议向网络层提供了转换地址的服务,因此ARP应当属于数据链路层。”这种说法为什么是错误的? 2.试解释为什么ARP高速缓存每存入一个项目就要设置10~20分钟的超时计时器。这个时间设置的太大或太小会出现什么问题?
PD教程PD教程PD教程
为什么下不了呢?为什么下不了呢?为什么下不了呢?为什么下不了呢?为什么下不了呢?为什么下不了呢?为什么下不了呢?为什么下不了呢?为什么下不了呢?
QLabel4_131_CN简体免费版
简单好用的条码和标签打印软件,完全免费,没有限制。支持几十种条码。
解决文件夹选项里面为什么没有了“显示隐藏文件和文件夹”的方法
解决文件夹选项里面为什么没有了“显示隐藏文件和文件夹”的方法 开始--运行输入regedit 找到
SpringBootTest
这是SpringBoot里面有通过配置文件jsp并在js页面显示数据。
applet z-index 问题
div弹出层为什么覆盖不了applet呢? 我在这个例子里面把例子弄上去了。 参考一下就明白了。
RealVNC Enterprise v5.0.5_Key
最新Key,并附带最新的应用程序 这个已经是最新的了,没有多少可描述的了 为什么要写这么多描述呢
汉魅 Huntmine V2.8
汉魅 Huntmine V2.8 这个2.8版本的还是可以搜索的,只是为什么点击所搜之后没有任何反应呢