指针与数组

#include<stdio.h>

/*
  指针与数组
*/

int main() {

	int a[3] = {10,20,30};

	//1、数组和指针的关系
	//说明:数组名的地址和第一个元素的地址时相同的
	//数组名是指向第一个元素地址的
	printf("a的指针:%p\n",a);
	printf("a[0]的指针:%p\n",&a[0]);

	//取得a[0]的值
	int value1 = a[0];
	//通过嗄[0]的地址取得a[0]的值
	int value2 = *a;
	printf("value1:%d   value2:%d\n",value1,value2);

	//错误,数组是数组的首地址,是指针常量,不能修改
	// a = &a[1];
	// a ++;

	//定义一个整型指针指向a[0]
	//ffc1   ffc5
	int *p = a;
	printf("*p:%d\n",*p);
	//不是单纯的地址+1
	p ++;
	printf("++后*p:%d\n",*p);


	//2、数组的遍历
	int b[] = {1,2,3,4,5,6,7};

	//常规遍历
	//数组元素的个数
	int len = sizeof(b)/sizeof(int);
	for (int i = 0; i < len; ++i)
	{		
		//取出元素
		int value = b[i];
		printf("b[%d] = %d\n",i,value);
	}

	//用指针遍历数组
	//定义一个指针,指向首地址,第一个元素
	int *pointer = b;
	for (int i = 0; i < len; ++i)
	{
		//取出指针所指向的值
		int value = *pointer;
		printf("b[%d] = %d\n",i,value);
		//指针指向下一个元素
		pointer ++;
		// a ++;  错误
	}

	printf("指针最后的指向%d\n", *pointer);



	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值