栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++小笔记

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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;
}

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/630176.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号