- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我知道之前有人问过这个问题,但是这些其他问题没有涉及的一件事是为什么
请允许我解释一下。我刚刚浏览了一个输出整数和指针的教程,以向您展示如何执行此操作。
int anInteger = 50;
int *anIntPointer = &anInteger;
因此,为了设置一个指针,我像往常一样分配一个变量值,然后将该变量分配给一个指针。我明白这一点,但正如我已经说过的,这是如何而不是为什么。
如果我想返回值 50
我可以只返回 NSLog
anInteger
所以为什么我需要一个指针。为什么我需要 NSLog
*anIntPointer
如果我可以 NSLog
anInteger
做完全相同的事情?
好吧,我知道这是非常微不足道的,并且可能存在使用指针的完美环境,但到目前为止,我阅读或观看的任何教程都不会给我一个完美的环境。它们都处理如何
请帮我找出原因。
最佳答案
指针有很多用途。一个明显的原因是您想调用一个函数并让它修改您的一个变量:
void f(int *i) { *i = 42; }
int g() { int i; f(&i); return i; }
另一种是无需大量复制就返回一个大型结构:
struct big_struct *f() {
big_struct *bs = malloc(sizeof(big_struct));
// Populate the big_struct;
return bs;
}
还有一个是管理你在编译时不知道大小的数组:
struct item *fetch_items(int n) {
item *i = malloc(n*sizeof(item));
load_items(i, n);
return i;
}
还有一种是递归数据类型,比如链表:
struct node {
int value;
struct node *next;
};
这只是一个示例。指针就像木匠的钉子。它们是解决几乎所有重要编程问题的关键工具。
关于objective-c - 你能帮我理解指针吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5337848/
嗨,我是第一次玩 Pig,我很好奇如何处理将一个字段拆分成多个其他字段。 我有一个包,A,如下图: grunt> Dump A; (text, text, Mon Mar 07 12:00:00 CD
如何添加架构中未定义的固定字段(例如日期或月份)?我运行了以下 pig 脚本以将固定日期添加到我的结果表中,并收到以下错误消息:Invalid field projection。方案中不存在投影字段
我是一名优秀的程序员,十分优秀!