30 lines
644 B
C
30 lines
644 B
C
#include <stdio.h>
|
|
/*
|
|
指针与数组的关系
|
|
|
|
指针与一维数组
|
|
*/
|
|
int main(){
|
|
|
|
int nums[] = {1, 2, 3, 4, 5};
|
|
//数组在内存中是连续存储 指针变量运算后会得到下一个/前一个
|
|
//nums是一个指针 指向自己这个数组的第一个元素
|
|
//nums[下标] <=> *(nums+下标)
|
|
//C语言中只有 *(nums+下标)写法
|
|
//编译器会将 nums[下标]翻译成上面这种
|
|
int *p;
|
|
p = nums;//nums、p都可以指向该数组的第一个元素
|
|
//p可以进行赋值运算 但是 nums不行 因为他只是一个虚拟的指针 只能使用*
|
|
printf("%d\n", *nums);
|
|
printf("%d\n", *(nums+1));
|
|
printf("%d\n", *p++);//1
|
|
printf("%d\n", *p++);//2
|
|
printf("%d\n", *p++);//3
|
|
printf("%d\n", *p++);//4
|
|
printf("%d\n", *p);//5
|
|
|
|
|
|
return 0;
|
|
}
|
|
|