【发布时间】:2009-08-02 22:18:13
【问题描述】:
假设我们有这段C 代码:
int x[] = {1, 2, 3, 4, 5};
printf("%d", *(x + 1)); //prints 2
printf("%d", *(x + 500)); //prints 7209065 (...?)
从第二次调用中可以看出,它仍然返回一些东西......但它是垃圾。
所以我问,你如何在 C 中处理这种情况?也就是说,你怎么知道返回的元素是真的存在于数组中的元素还是只是垃圾?
【问题讨论】:
-
从你在这里发布的这个问题和其他问题来看,我真的认为你会更喜欢使用 C++ 而不是 C
-
呵呵,我学习 C 是为了好玩(希望有一天能开始涉足电子和微控制器编程)...也就是说,我的意思是,它不是为了工作或任何东西.所以,我的计划是首先尝试尽可能多地掌握 C 的窍门,然后再转向 C++
-
@Dreas - 这听起来不无道理,要了解真正发生的事情(只要你意识到其中有一些痛苦:-)
-
如果你想学习嵌入式 C 语言,这很公平。但是,如果 C++ 是您的最终目标,则不必在 C++ 之前学习 C。
-
嗯,这并不是一个真正的“最终目标”……从某种意义上说,我希望能够了解 C 和 C++ 之间的区别。这就是我首先从 C 开始的主要原因。