C++基础知识点整理_4

本文介绍了C++中的指针概念,包括如何定义和使用指针,以及空指针和野指针的区别。同时,详细探讨了const修饰指针的三种情况,分别是常量指针、指针常量和同时修饰的const指针,解析了它们的特性和用法。最后,通过值传递和地址传递的例子展示了参数传递的不同方式及其影响。
摘要由CSDN通过智能技术生成

4.指针

4.1可以利用指针变量保存地址

定义:数据类型 * 指针变量名
int * p
与数据建立联系:
p=&a;
使用:
解引用找到指针指向的内存(数据): *p;

在32位操作系统下,指针占用4个字节空间

4.2 空指针与野指针

1)空指针:指针变量指向内存中编号为0的空间
eg: int * p = NULL;

空指针指向的内存不可访问。

2)野指针:指针变量指向非法的内存空间
eg: in * p =(int *) 0x1100;

4.3 const修饰指针

4.3.1 常量指针

eg:
	int a = 10;
	int * p =&a;        --->   const int * P = &a;
	//*p=20;   ×,值不可以修改
	p = &b;   // √,指针指向可以更改

特点:指针指向可以修改,指针指向的值不可以更改。

4.3.2 指针常量

eg:
	int a = 10;
	int * const p = &a;
	*p=20;    //√,指针指向的值可以修改
	//p = &b;   ×,指针的指向不可以更改。

4.3.3 const 即修饰指针,又修饰常量

eg:
	int a=10;
	const int * const p = &a;
	*p=20;    //×
	p=&b;	  //×
特点:指针的指向和指针指向的值都可以修改。

值传递与地址传递

//值传递
void swap1(int a,int b)
{
	//值传递不会改变实参的值
	int temp = a;
	a = b;    //a = 10,b = 20 ,交换后
	b = temp;  //a = 10, b = 20;
	
}

//地址传递
void swap2(int *p1, int *p2)
{
	//地址传递会改变实参的值
	int temp = *p1;
	*p1 = *p2;     //a = 10, b = 20, 交换后
	*p2 = temp;		//a = 20, b = 10;
	
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值