指针数组的概念和定义方式
Posted 軒邈
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了指针数组的概念和定义方式相关的知识,希望对你有一定的参考价值。
/*
2022.06.08
目的:
指针数组
理论:
1.指针数组的概念
a.是一个数组;
b.是存放的指针变量的数组,数组中的每一个元素都是一个指针变量;
c.是若干个相同类型的指针变量构成的集合。
2.指针数组定义方式
类型说明符*数组名[元素个数]
*/
#include<stdio.h>
int main(void)
/* 例子: 2.指针数组定义方式 */
#if 0
int* p[5];
int a = 100;
int b[10] = 1,2,3,4,5,6,7,8,9,0;
printf("sizeof(p) = %d\\n", sizeof(p)); /* 测量指针数组的大小 */
p[0] = &a;
printf("p[0] = %p\\n", p[0]); /* 打印p[0]的地址 */
printf("&a = %p\\n", &a ); /* 打印a的地址 */
printf("*p[0] = %d\\n", *p[0]);/* 打印p[0]的值 */
p[1] = &b[2]; /* p[1]这个指针变量保存b[2]这个元素的地址 */
printf("*p[1] = %d\\n", *p[1]); /* 将p[1]这个指针指向的值打印出来 */
#endif
/* 例子: 2.指针数组定义方式 */
char* name[5] = "hello", "China", "beijing", "project", "Computer";
int i;
for (i = 0; i < 5; i++)
printf("%s\\n", name[i]); /* 打印字符串只需要字符串的首地址就可以了 */
/*
解释:
1.指针数组name中存放的不是字符串,字符串存放在文字常量区;
2.指针数组name中存放的是地址编号;
3.name数组中每一个元素就是一个指针变量,每一个指针变量存放一个字符串的首地址。
4.假设:“hello”首地址是 0x00002000
“China”首地址是 0x00003000
“beijing”首地址是 0x00004000
“project”首地址是 0x00005000
“Computer”首地址是 0x00006000
那么:
name[0]中存放内容为 0x00002000
name[1]中存放内容为 0x00003000
name[2]中存放内容为 0x00004000
name[3]中存放内容为 0x00005000
name[4]中存放内容为 0x00006000
*/
return 0;
/*
程序运行结果:
sizeof(p) = 20
p[0] = 004FFB4C
&a = 004FFB4C
*p[0] = 100
hello
China
beijing
project
Computer
*/
以上是关于指针数组的概念和定义方式的主要内容,如果未能解决你的问题,请参考以下文章