链表c语言t1=t2和t1->next=t2c语言链表有什么用区别

 如题主所说t1、t2、t3都是链表 c语言嘚指针,所以表达式“t3->next=t1?t1:t2;”的作用是为链表 c语言指针t3的next元素赋值只不过,在赋值时使用“ ? : ”进行了判断根据C语言运算符结核性的优先级,具体过程如下:
① 取得t3结构体的next元素:t3->next
② 进行“ ? : ”条件运算:t1?t1:t2。也就是说要判断( NULL != t1 )。如果( NULL != t1 )则条件运算表达式结果取值t1;如果( NULL == t1 ),则表達式取值为t2
为什么要判断( NULL != t1 )?很简单啊t1不是指针吗?如果t1为“真”则取值不能等于0,对吧而NULL是包含在stddef。
h中的宏:
#define NULL (void *)0
所以“t1?t1:t2”表达式中“?”之前的第一个表达式"t1"就成了(NULL != t1)
③ 赋值符号“=”作用,将条件表达式的运算结果赋值给t3->next
刚刚查询了一下stddef。h关于NULL的宏定义是:
#define NULL ((void *)0)
仩面的描述中书写有误。
全部
}

优秀毕业论文——基于c语言实现電话簿管理系统实现,论文,代码,优秀毕业,基于c语言,毕业论文,C语言,C 语言,通讯录管理,c语言吧

}

我要回帖

更多关于 c语言链表有什么用 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信