指针数组
int *p1[5];
数组指针
int (*p2)[5];
数组名只是一个地址,指针是一个左值
指针数组是一个数组,每个数组元素存放一个指针变量
代码3-1
#include<stdio.h>
int main()
{
char str[] = "I love my job!";
char *target = str;
int count = 0;
while(*target++ != '\0')
{
count++;
}
printf("总共有%d个字符!\n", count);
return 0;
}
输出结果:
总共有14个字符!
代码3-2
#include <stdio.h>
int mian()
{
int a = 1;
int b = 2;
int c = 3;
int d = 4;
int e = 5;
int *p1[5] = {&a, &b, &c, &d, &e};
int i;
for(i = 0; i < 5; i++)
{
printf("%d\n", *p1[i]);
}
return 0;
}
输出结果:
1
2
3
4
5
代码3-3
#include <stdio.h>
int main()
{
char *p1[5] = {
"一旦选择相信,一切皆有可能",
"对生命,你不妨大胆一点,因为我们始终会失去它",
"你的良知在说什么?你要成为你自己。",
"谦逊基于力量,高傲基于无能。",
"那些不能杀死我们的,使我们更强大。"};
int i = 0;
for(i = 0; i < 5; i++)
{
printf("%s\n", p1[i]);
}
return 0;
}
输出结果:
一旦选择相信,一切皆有可能
对生命,你不妨大胆一点,因为我们始终会失去它
你的良知在说什么?你要成为你自己。
谦逊基于力量,高傲基于无能。
那些不能杀死我们的,使我们更强大。
printf("%s\n", p1[i]);
s%格式符,输出一个字符串.
p1表示取出字符串;
*p1表示取出字符
我们要的是字符串,所以要给出字符串的地址。
数组指针,它是指针,它指向的是一个数组。