c/c++ 基础(三) 指针与数组

直接上代码,观察结果:

#include <iostream>
#include <stdlib.h>
using namespace std;
	
int main()
{
	int Number [5]={10,20,30,40,50};
	int *p=Number;

	/*说明:数组正常遍历
	  
	*/
	cout<<endl<<"-------A-------- Number[i]---------------"<<endl;
	for (int i = 0; i < 5; ++i)
	{
		cout<<(Number[i])<<endl;
	}

	/*说明:数组名是一个常量指针,指向数组的第一个元素
	  
	  Number是一个指向Number数组的第一个元素的指针(也即是一个地址);
	  对Number进行加减运算,如Nuber+i(指向的是Number中的第i个对象,不是离Number开头的i字节处),也即Number首地址+i*(sizeof(int))
	*/
	cout<<endl<<"-------B-------- Number+i---------------"<<endl;
	for (int i = 0; i < 5; ++i)
	{
		cout<<(Number+i)<<endl;
	}

	/*
	   说明:*(p+i) : 取第(p+i*(sizeof(int))地址处元素的值
	*/
	cout<<endl<<"-------C-------- *(p+i)---------------"<<endl;
	for (int i = 0; i < 5; ++i)
	{
		cout<<*(p+i)<<endl;
	}

	/*
	   说明:*p+i : 指针p指向地址处的值+i
	*/
	cout<<endl<<"-------D-------- *p+i---------------"<<endl;
	for (int i = 0; i < 5; ++i)
	{
		cout<<*p+i<<endl;
	}

	/*
	   说明:数组名用作常来指针是合法的,常量指针用作数组名也是合法的
	*/
	cout<<endl<<"-------E-------- p[i]---------------"<<endl;
	for (int i = 0; i < 5; ++i)
	{
		cout<<p[i]<<endl;
	}

	/*
	    *p++是先取出*p的值,然后让p++
		(*p)++是先取出*p的值,让这个值++
		*(P++)是先取出*p的值,让p++
		所以,*p++等价于*(P++)
	*/
	// cout<<endl<<"-------F-------- *(p++)---------------"<<endl;
	// for (int i = 0; i < 5; ++i)
	// {
	// 	cout<<*(p++)<<endl;
	// }

	// cout<<endl<<"-------G-------- *p++---------------"<<endl;
	// for (int i = 0; i < 5; ++i)
	// {
	// 	cout<<*p++<<endl;
	// }

	// cout<<endl<<"-------H-------- (*p)++---------------"<<endl;
	// for (int i = 0; i < 5; ++i)
	// {
	// 	cout<<(*p)++<<endl;
	// }

	return 0;
}

打印结果如下:



如果要查看FGH的结果,只能是将F/G/H之一注释去掉,即一次只能查看FGH之一的结果。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值