今天我们聊一聊指针的一个好兄弟——数组
初学者可能大概知道数组符号和指针具有相同的取地址的性质,但是这还不够想要更深入的来了解他们,我们来实践看看。
一、看看数组的样子
#include<stdio.h>
int main()
{
int * p;
int a[5];
for(int i = 0;i < 5;i++)
{ //这段代码运行完后,你会发现一长串的数
printf("%d\n",&a[i]);//但是这串数字间隔为4
//这里说明了两个事情每个数组也是有地址的,以及int是4个字节
}
return 0;
}
这个程序给我们展示了一个一格又一格的数组像一排紧挨着的房间,每个房间里面装的是数据类型开辟的大小。
二、数组和指针的加法
#include<stdio.h>
int main()
{
int * p;
int b;
int a[5];
p = &b;
printf("%d",p);
puts(" ");
p = p + 1;
printf("%d",p);
puts(" ");
p = &a[5];
printf("%d",p);
puts(" ");
p+=1;
printf("%d",p);
puts(" ");
return 0;
}
这段代码活生生的展示了为啥数组和指针是一对好朋友了,连结果都一模一样
当然至于为什么一模一样还是和局部变量的生命期有关系的
减法也具有相同的道理,但是指针之间的运算又回到了正常的加减之中。
这次的内容就到这里了,下一次是更深入的内容。