【发布时间】:2022-01-24 23:44:09
【问题描述】:
我刚开始使用 C,我有些困惑。举个例子:
int *first=0;
int second=1;
if(*first<second)
{
printf("Works\n");
}
上面的例子应该给我打印并完成代码。 相反,它给了我一个段错误,但 IDE 告诉我没有问题。 首先,我不是给出指针指向的值吗? 我在这里错过了什么?
【问题讨论】:
-
*first确实是first指向的任何值——如果它指向任何东西。 -
“首先,我不是给出了指针指向的值吗?”用您自己的话来说,您认为指针指向什么值?为什么你认为它指向任何特定的价值?当你写
int *first=0;——尤其是=0部分时,你认为这意味着什么? -
"我刚开始使用 C,我有点困惑" 如果您有基本的概念上的困难,那么您应该尝试遵循教程,或通读 FAQ,或获取教科书,或与导师交谈。 Stack Overflow 用于解决具体的代码问题。
-
"示例应该给我打印并完成代码。"是不正确的。代码在
int *first=0; ... *first被破坏。 -
感谢 cmets。总的来说,我也不懂一些基本的在线内容,所以我去了下一个最好的东西。虽然 Stack Overflow 是针对具体问题的,但也有很多学生来这里寻找答案,所以嘿,也许他们像我一样误解了课程。最好是在网上提出一个具体问题,然后什么都没有:)我现在看到我给出的示例由于
=0部分而具有问题,但它通常是任何数字。