t3-next=t1?t1:t2;c语言什么意思
t1 t2 t3 都是链表指针
t3->next=t1?t1:t2;c语言:管理程序开启
如题主所说,t1、t2、t3都是链表的指针,所以表达式“t3->next=t1?t1:t2;”的作用是为链表指针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语言至少要看到那一章节?
答:数据类型、输入输出、选择语句、循环语句、数组、指针、函数、文件详情>>
答:网上买2手的也就几块钱而已详情>>