c 指针和引用

引用数组

int ar[10] ={0};
int (&b)[10] = ar;
声明引用必须在定义时初始化 没有空引用
引用不分等级 没有2/-/4级别引用

引用和指针的区别

三种形参 
传值操作 void (int a) 改变x a不变 形参改变实参不变(传值设计)
void fun(int a)						void fun(int &a)								viod fun(int *p)
{
	a+=10;
}
int main()
{
	int x = 0;
	fun(x)									fun(x)												fun(&x)
}

void fun(int *a) 传地址 通过指向 用形参改变实参
void fun(int *a) 别名 改变实参



void fun(int *p)
{
	*p +=100;
	int a =10;
	p = &a;														//之改变了p的指向 和传递的s的指向无关 新建的指针
}

int main()
{
int x = 10 , y = 20;
int *s = &x;
fun(s);
printf("%d %d",*s,x);
return 0;
}

大块内存用指针
单个值用引用和传值
形参的设计方案和是否需要改变值有关系
形参设计方案

指针和引用的区别

对单个变量改变最好使用引用
对群体变量最好设置成指针

引用不能为空 更安全
类型不同 包括长度不同()

指向数组的指针和数组指针

数组名的三个例外
1.数组名做长度
sizeof(ar) 只关心大小  等于长度
2.取数组地址
	指针指向数组地址  数组地址= 大小加类型
	int *p[10]		数组 是个空间 每个空间放指针 时指向int的指针		p标识符 数组名	 放的整形类型的地址				存放地址
	int (*s)[10]	指针 指向数组  十个空间  每个空间放的整形			s标识符	 s开辟四个地址									存放变量	
3.数组初始化一个引用
	数组名=大小加类型
	int ar[10] ={0};
	int (&b)[10] = ar;
剩下都是首地址
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值