(一)指向数组的指针
- 数组的地址=数组中第一个元素的地址
- 指针指向第一个元素就可以操作整个数组
- 由于右值自动转换 可以不用取址符
- 与数组类型保持一致
#include<stdio.h>
int main()
{
int a[10] = { 1,3,5,7,9,11,13,15,17,19 };
int* p;
p = a;
printf("数组的地址:%#x\n", &a);
printf("指针变量p1指向的地址是:%#x\n", p);
return 0;
}
(a)结果演示
(二)数组偏移量
#include<stdio.h>
int main()
{
int a[10] = { 1,3,5,7,9,11,13,15,17,19 };
int* p;
p = a;
printf("a数组元素类型的偏移量:%d", sizeof(a[0]));
return 0;
}
(b)结果演示
(三)代码组
#include<stdio.h>
int main()
{
int a[10] = { 1,3,5,7,9,11,13,15,17,19 };
for (int i = 0; i < 10; i++) {
printf("%d ", a[i]);
}
return 0;
}
#include<stdio.h>
int main()
{
int a[10] = { 1,3,5,7,9,11,13,15,17,19 };
for (int i = 0; i < 10; i++) {
printf("%d ", *(a+i));
}
return 0;
}
#include<stdio.h>
int main()
{
int a[10] = { 1,3,5,7,9,11,13,15,17,19 };
int* p;
for (p = a; p < (a + 10); p++) {
printf("%d ", *p);
}
return 0;
}
(c)结果演示