Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
“什么是”呢;p?p->;下一步:0“;在这个C代码段中,如何运行它?_C - Fatal编程技术网

“什么是”呢;p?p->;下一步:0“;在这个C代码段中,如何运行它?

“什么是”呢;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,但我认为这不是标准中规定

我想检查这个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,但我认为这不是标准中规定的。。?这里有人会知道的。

空指针只不过是
(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指针常量。Literal
0
也是一个空指针常量。它们不一定完全相同(例如,
NULL
可能会扩展到
(void*)0
),但它们可以作为空指针互换使用,并且它们相互比较相等,并与所有其他空指针进行比较。@JohnBollinger感谢您提供的信息/澄清。@usr2564301 ahhh,当我开始输入你的名字时,它没有自动完成,所以我认为你不会得到通知。我想当我键入的语言名称与代码标记的外观相匹配时,我会得到某种满足感,但你是对的,它不是代码,我会尽量记住停止这样做。
if (p != NULL)
    q = p->next;
else
    q = NULL;