C语言复习笔记(指针数组和多级指针)

定义:

int *p[5];

定义了一个指针数组,每一个元素均为一个指向整型值的指针。如果没有进行初始化,则每个元素均为无效指针。
可以在定义的时候对指针进行初始化,也可以通过以下循环的方式进行一一配对。

int a[10],i,*p[10];
for(i=0;i<10;i++)
	p[i] = &a[i];

例:
不改变数组中各个元素的顺序,按照从小到大的次序来输出数组值。

#include<stdio.h>
#define n 10

int main()

{
	int a[n],*p[n],i,j,*pt = a;
	for(i=0;i<n-1;i++)
	{
		scanf("%d",pt);
		p[i] = pt++;
	}
	for(i=0;i<n;i++)
		for(j=0;j<n-i-1;j++)
			if(*p[j]>*p[j+1])
				pt = p[j],p[j] = p[j+1],p[j+1] = pt;
	for(i=0;i<n;i++)
		printf("%d\t",*p[i]);
	
	return 0;
 } 

二级指针与多级指针

二级指针举例

我们对一个变量i = 4,可以直接通过i来访问这个变量,也可以通过指针*pi = 4,也可以通过二级指针**pi来访问

int i=4;
int *pi = &i;
int **ppi = &pi;

上面这三种定义都可以访问到i这个变量。

二级数组用于操作指针数组十分方便。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

会飞的CR7

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值