目录
随手记
随手记一些基础的东西,方便以后自己查阅~
const修饰指针
const修饰的是指针,指针指向可以改,指针指向的值不可以改
const int* p1 = &a;
const修饰的是常量,指针指向不可以改,指针指向的值可以更改
int* const p2 = &a;
const既修饰指针,又修饰常量,指针的指向和指针指向的值都不可以改变
const int* const p = &a;
结构体
把 "struct Student" 这种看作另类的变量类型,然后照着套就行
栈区的局部变量返回问题
先附上代码:
#include <iostream>
using namespace std;
// 栈区数据不要返回局部变量地址(注意是局部变量,逻辑就是执行完了之后,局部变量被收回了)
int* fun1() {
int a = 10;
return &a;
}
int* fun2() {
int a = 20;
return &a;
}
int main() {
int* p = fun1();
cout << *p << endl; // 第一次可以打印正确的数字是因为编译器做了保留
fun2();
cout << *p << endl;
system("pause");
return 0;
}
结果:

可以看到,返回了地址,且该地址还未被回收,再次动该地址,就会导致值的改变,这里用了两个不同的函数但是访问到同一个地址,应该和c++的栈区管理机制有关。
参考文献
【C++】如果你准备学习C++,并且有C语言的基础,我希望你能简单的过一遍知识点。_c++csdn-CSDN博客
【C++】如果你准备学习C++,并且有C语言的基础,我希望你能简单的过一遍知识点。_c++csdn-CSDN博客
原文链接:黑马笔记–C++基础篇–随笔
© 版权声明
THE END


![表情[baoquan]-拾光赋](https://blogs.ink/wp-content/themes/zibll/img/smilies/baoquan.gif)


暂无评论内容