《从10开始学C++》八(指针与引用)


指针与引用

指针定义

指针,其实就是存储一个变量的地址的变量。
怎样理解地址呢?
存储一个变量,我们得先腾出空间来储存他,而这个变量占用的空间就是这个变量的地址,指针一般取第一个地址。
知道了指针变量,我们得知道他怎么定义。如下:

类型 *名字;
例:
int b,*p=&a;

前面的类型取决于这个指针他存储的地址的"主人"是什么类型
有的会把int和星号放在一起,如果你只定义一个指针没问题,但是你想定义多个指针,后面的还是得单独加星号int* a,*b
这也意味着定义指针的int也可以定义变量
这里我们要了解一下*号和&号

*&

很常见的,*可以做乘号用,比如:c=a*b;
两个&可以做and用,比如:a&&b
而一个&,做运算符时可以做与运算,这个就涉及进制了下一期讲
一个&还有什么用呢?就是取地址,在变量前面加&,可以知道他的地址是什么,好用指针存地址。
另外,一个&还可以引用,之后讲
*还有分定义时和平常时,定义时前面加 *就是说这个变量是指针
平常时加 *表示解地址,与&是恰恰相反的,在指针前面加 *,可以知道地址所存的变量

引用

一般指针用不了太多,这里介绍一些操作

	int a=10;
	int *p=&a;
	*p+=5;
	cout<<a;//cout<<*p;

这个程序会输出15,因为解地址符把P的地址解了,此时*p就可以看做a了,a+5=15
对了,言归正传,说一下引用
引用和指针有异曲同工之妙,说白了引用可以理解成*变量,自带 *的指针
定义:

类型 &名字;
例:
int b,&q=a;

引用就是给引用的变量取小号,&q=a,q就可以看做a了,多用于函数参数传递
指针也可以用于函数

#include<cstdio>//C语言原生输入输出头文件
using namespace std;
//指针
void pad(int *a,const int d){
	*a+=d;
}
//引用
void quad(int &a,const int d){
	a+=d;
}
int main(){
	int a=5;
	printf("%d %d",pad(&a,5),quad(a,10));
	return 0;
}
//const表示常量,const int就是整数常量类型,常量是不可以赋值的
//所以常量变量就是不可以变动的变量

顺便还讲了const awa
通过对比可以看出,两个函数的内容唯一差别就是
带星号和不带星号
传值时带&号和不带&号

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值