[C语言] 关于指针数组和数组指针的初识

一. 指针数组与数组指针

1.指针数组

  指针数组,从字面意思上可以看出,这是一个数组类型,数组元素为存放指针。

// []优先级高于* 所以它是一个数组 其次才是指针
int a, b, c;
int *br[3] = { &a, &b, &c };

2.数组指针

1). 数组指针的概念

  数组指针,指向数组的指针。

int ar[3] = { 1, 2, 3 };
// 一个能指向数组中有三个元素的指针
int (*p)[3] = &ar;

2). 数组指针的一般定义形式

我们通常通过typedef对数组指针进行重定义

1>.先定义数组类型,根据类型定义指针变量
// 定义一个数组
int a[10] = { 0 }; 

// 1.先定义数组类型,根据类型定义指针变量
typedef int A[10];	// 代表数组类型,步长为10
// 定义数组指针类型
// A 代表10个元素的数组类型 
// *p 代表指针
// A *p 代表数组直至
A* p = &a;
// 原理
// p = &a;
// *p = *&a -> a
// (*p)[i] = a[i]
2>.先定义数组指针类型,根据类型定义变量(常用)
// () 和 [] 优先级一样,结合律从左向右
// ()有指针,它是一个指针
// []它是指向数组的指针,它有typedef,所以它是一个数组指针类型
typedef int(*P)[10];

P q = a;
3>.直接定义数组指针变量
// () 和 [] 优先级一样,结合律从左向右
int (*q)[10] = { 0 };
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值