int a[10]; 数组
int *p[5]; 指针数组-----5个指针变量
int (*p)[5];数组指针-----可以看成是*(P[5])早期程序设计未来简化书写就简写成(*p)[5]------>这样就理解了只有一个指针
解答:
每一个指针指向一个指针变量共需10个,但此处只有一个a,所以不可以用指针数组
-
int *p=arr;
-
int *p=&a[0];//含义一样数组名代表首地址
#include<stdio.h>
int main()
{
int a[10]={1,2,3,4,5,6,7,8,9,0};
int *p;
for(p=a ; p<(a+10) ; p++)
{
printf("%d ",*p);
}
printf("\n");
return 0;
}
先让指针p指向a数组的首元素,打印*p(即指向数组的值),然后执行p++,使得p指向下一个元素,直到输出数组的十个元素为止。
for循环的第一句是初始化语句
{//单次表达式在初始化过程中,只执行一次将数组名赋值给指针变量后等待循环P++------>指针地址递增
中间循环体;
}
#include <stdio.h>
const int MAX = 4;
int main ()
{
const char *names[] = {
"Zara Ali",
"Hina Ali",
"Nuha Ali",
"Sara Ali",
};
int i = 0;
for ( i = 0; i < MAX; i++)
{
printf("Value of names[%d] = %s\n", i, names[i] );
}
return 0;
}
Value of names[0] = Zara Ali
Value of names[1] = Hina Ali
Value of names[2] = Nuha Ali
Value of names[3] = Sara Ali
指针数组每个变量都是指向char的指针
一个指向字符的指针数组来存储一个字符串列表-----????