关于数组指针,指针数组和字符串数组的一些问题

数组指针与指针数组详解
本文详细解析了数组指针与指针数组的概念及其使用方法,并通过具体示例展示了如何定义及应用这两种指针类型。同时介绍了如何利用指针访问字符串数组。

数组指针,本质是一个指针,是一个指向数组的指针。

指针数组,本质是一个数组,是一个其中每个元素都是指针的数组。

数组指针的定义:int (*p)[5] ;

指针数组的定义:int *p[5] (或int *(p[5]));

数组指针的用法:

#include <stdio.h>
void main(void)
{
	//数组指针的用法
	int (*a1)[10];
	int b[10] = {1,2,3,4,5,6,7,8,9,0};
	a1 = &b; 
	printf("b = %d\n", *a1[0]);
}


指针数组的用法:

#include <stdio.h>
void main(void)
{
	//指针数组的用法
	int *a2[10];
	int b[10] = {1,2,3,4,5,6,7,8,9,0};
	a2[0] = &b[0];
	printf("b = %d\n", *(a2[0]));
}


此外,若想定义一个字符串数组来存放字符串并想用指针访问它,可如下所示:

#include <stdio.h>
void main(void)
{
	char a[10][10] = {"a","b","c","d","e","f","g","h","i","j"};    
	char *p[10];
	int i = 0;
	for(i=0;i<10;i++)
	{
		p[i] = a[i];
	} 
	for(i=0;i<10;i++)
	{
		printf("a = %s\n", p[i]);
	}  
}
其中a[10][10]中,第一个10是字符串个数,第二个10是字符串长度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值