所以,我有这两个函数ref()
,pointy()
它们分别创建一个本地引用和指向本地定义的 int 的指针:
#include <iostream>
int& ref() {
int knuckles = 6;
int &chuckles = knuckles;
return chuckles;
};
int* pointy() {
int buckles = 8;
return &buckles;
};
int main(int argc, char **argv) {
int a = ref(), *b = pointy();
int c = 14, d = 20;
std::cout << a << ' ' << *b << ' ' << c+d;
};
代码编译得很好,它给出了一个关于返回局部变量地址的警告buckles
,但我担心的是它没有说任何关于ref()
返回引用的内容knuckles
。我的编译器(通过 MinGW 的 g++,如果有影响的话)只是在工作中睡觉吗?引用是否有一些东西可以防止所指对象超出范围?还是我的参考语法不好?
非常感谢!