c++指针和数组

之前应该也写过类似的博客,今天又碰到类似的题目,又做错了,看来当时就没有透彻明白。

	int a[10] = {0};  
	int (*b)[10] = &a;   
	int** c = reinterpret_cast<int**>(&a);  
	std::cout << a << std::endl<<&a<<endl<<&a[0]<<endl;  
	std::cout << c << std::endl;  
	std::cout << b << std::endl;  
	std::cout << **b << std::endl;  


output:

0024FEC8

0024FEC8

0024FEC8

0024FEC8

0024FEC8
0


为什么a的值和&a的值是一样的呢?

首先a表示数组第一个元素的地址,也就是这个数组的起始地址。

a是一个数组,&a表示这个数组的地址,也就是数组的起始地址。


虽然a和&a的值一样的,但是表示的意义不一样,a+1表示这个数组第二个元素的地址,而&a+1表示下个数组的地址




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值