- 指针和数组的区别
指针式左值,左值就是识别或定位一个存储位置,是可改变的.
数组名是一个地址常量不可改变,所以不是左值. - 指针数组
指针数组是一个数组,每个元素存放一个指针.
#include <stdio.h>
int main()
{
char *p1[5] = {
"让编程改变世界 -- 鱼C工作室",
"Just do it -- NIKE",
"一切皆有可能 -- 李宁",
"永不止步 -- 安踏",
"One more thing... -- 苹果"
};
int i;
for (i = 0; i < 5; i++)
{
printf("%s\n", p1[i]);
}
return 0;
}
[fishc@localhost s1e23]$ gcc test3.c && ./a.out
- 数组指针
数组指针是一个指针,它指向的是一个数组
int (*p2)[5];
#include <stdio.h>
int main()
{
int temp[5] = {1, 2, 3, 4, 5};
int (*p2)[5] = &temp;
int i;
for (i = 0; i < 5; i++)
{
printf("%d\n", *(*p2 + i));
}
return 0;
}
[fishc@localhost s1e23]$ gcc test4.c && ./a.out
1
2
3
4
5