C++小笔记

C++小笔记,第1张

C++小笔记
#include 
using namespace std;
int* func()
{
	int a = 10;  //不要返回局部变量的地址,栈区开辟的数据由编译器自动释放
	return &a;    //返回局部变量的地址
}

int main() {

	int* p = func();  //用指针接收

	cout << *p << endl;  // 10
	cout << *p << endl;  //乱码	

	system("pause");

	return 0;
}

#include 
using namespace std;
int* func(int b)  //形参也是放在栈区里面的,形参数据也会放在栈区
{

	cout << b << endl;
	int* a = new int(10);  //用地址编号进行返回
	return a;
}

int main() {

	int* p = func(1);

	cout << *p << endl;
	cout << *p << endl;

	//利用delete释放堆区数据
	delete p;    //堆区里面的内容是用自己主动释放   释放了p这个指针指向的地址

	//cout << *p << endl; //报错,释放的空间不可访问

	system("pause");

	return 0;
}

 

#include 
using namespace std;

void Swap(int& a, int& b) {  //引用传递
	int temp = a;
	a = b;
	b = temp;

}
int main() {
	!!!!引用,别名 !!!!这可不是指针,你们别搞混淆了,还是有区别的,引用在C里面是没有的
	小理解:小名不能变成别人的小名
	//int a = 10;
	//int b = 20;
	int &c; //错误,引用必须初始化
	//int& c = a; //一旦初始化后,就不可以更改
	//c = b; //这是赋值 *** 作,不是更改引用  //同时改变了a的值

	//cout << "a = " << a << endl;  //20
	//cout << "b = " << b << endl;  //20
	//cout << "c = " << c << endl;  //20


	int a = 10;
	int b = 20;

	Swap(a, b);

	cout << a << endl;
	cout << b << endl;

	system("pause");

	return 0;
}

 

#include 
using namespace std;
//引用使用的场景,通常用来修饰形参
void showValue(const int& v) {
	//v += 10;
	
	cout << v << endl;
}

int main() {

	//!!!!int& ref = 10;  引用本身需要一个合法的内存空间,因此这行错误
	//引用不可以直接赋值,要有一个合法的内存空间,
	//常量引用 是可以直接赋值的
	//加入const就可以了,编译器优化代码,int temp = 10; const int& ref = temp;
	const int& ref = 10;

	//ref = 100;  //加入const后不可以修改变量
	cout << ref << endl;

	//函数中利用常量引用防止误操作修改实参
	int a = 10;
	showValue(a);
	a = 100; 
	system("pause");

	return 0;
}

 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5636056.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存