“什么是”呢;p?p->;下一步:0“;在这个C代码段中,如何运行它?
我想检查这个p?p->next:0是如何工作的。 它不是java中的同一个操作符吗?更换,一个衬里用于“如果” e、 g“什么是”呢;p?p->;下一步:0“;在这个C代码段中,如何运行它?,c,C,我想检查这个p?p->next:0是如何工作的。 它不是java中的同一个操作符吗?更换,一个衬里用于“如果” e、 g //int main在C中,0是false,其他所有内容都是true。这里使用的三元运算符是 if (p) { q = p->next; } else { q = 0; } 其中if(p)对于p!=0。在处理指针时,我的首选是比较NULL而不是0,if(p!=NULL){…},但使用0并不少见。在我使用过的每一个系统上,NULL都是0,但我认为这不是标准中规定
//int main在C中,0是
false
,其他所有内容都是true
。这里使用的三元运算符是
if (p)
{
q = p->next;
}
else
{
q = 0;
}
其中
if(p)
对于p!=0
。在处理指针时,我的首选是比较NULL
而不是0,if(p!=NULL){…}
,但使用0并不少见。在我使用过的每一个系统上,NULL
都是0,但我认为这不是标准中规定的。。?这里有人会知道的。空指针只不过是(void*)0
,所以q=p?p->next:0代码>扩展到
if (p != NULL)
q = p->next;
else
q = NULL;
是的,是``三元运算符与java中的相同p->next
是一个指针,与java的lambdaould相反。你能解释最后一行是如何工作的吗?我对p?p->next:0感到困惑;分配了什么以及为什么有“:0”?这在链接的副本中进行了解释。如果p->next为null-true,则q=p,否则q=0?p
是指针,而不是指针integer@paddy对的有大量的c
代码以这种方式检查指针。NULL
必须是NULL指针常量。Literal0
也是一个空指针常量。它们不一定完全相同(例如,NULL
可能会扩展到(void*)0
),但它们可以作为空指针互换使用,并且它们相互比较相等,并与所有其他空指针进行比较。@JohnBollinger感谢您提供的信息/澄清。@usr2564301 ahhh,当我开始输入你的名字时,它没有自动完成,所以我认为你不会得到通知。我想当我键入的语言名称与代码标记的外观相匹配时,我会得到某种满足感,但你是对的,它不是代码,我会尽量记住停止这样做。
if (p != NULL)
q = p->next;
else
q = NULL;