【发布时间】:2011-02-19 16:52:17
【问题描述】:
我对解引用操作符、操作符的地址和一般的指针有相当好的了解。
但是,当我看到这样的东西时,我会感到困惑:
int* returnA() {
int *j = &a;
return j;
}
int* returnB() {
return &b;
}
int& returnC() {
return c;
}
int& returnC2() {
int *d = &c;
return *d;
}
- 在
returnA()我要求返回一个指针;只是为了澄清这个工作,因为j是一个指针? - 在
returnB()我要求返回一个指针;由于指针指向一个地址,returnB()起作用的原因是因为我要返回&b? - 在
returnC()中,我要求返回int的地址。当我返回c时,&运算符是否会自动“附加”c? - 在
returnC2()中,我再次要求返回int的地址。*d是否因为指针指向地址而起作用?
假设a、b、c被初始化为全局整数。
有人可以验证我的四个问题是否都正确吗?
【问题讨论】:
-
这些问题的答案完全取决于代码中似乎缺少的 a、b 和 c 的声明。
-
假设 a、b、c 已初始化。