一维数组与指针
一,整型数组与指针
数组:在内存中,数组的数据元素是⼀段连续的空间,在这段空间中每 个元素占⽤对应的⼤⼩,元素与元素之间相连。
数组的地址的访问:
1.使用for循环下标索引。
int a[5] = {1,2,3}; //定义一个数组,部分初始化赋值。
for (int i=0; i<5;i++)
{
printf("%p\n",&a[i]);
}
2.使用指针:
int *p;
p = &a[0];
for (int i=0; i<5;i++)
{
printf("%p\n",p+i);
}
由于数组的数据元素是连续的,元素地址是相邻的,只要有⼀个指针存储了 数组元素的地址,就可以指针运算(+、-)可以得到数组其他元素的地址。总的来说只要知道了数组的首地址就能知道数组中其他元素的地址。
数组的首地址:数组的第一个元素。数组名就是首地址。
3.使用指针对数组首地址的访问:
int a[5] = {1,2,3}; //定义一个数组,部分初始化赋值。
int *p;
p = &a[0];
4.使用指针对其他数组元素地址的访问。
数组⾸地址 + n
二,字符数组与指针
1,字符数组的定义
char 数组名[ 数组元素个数]
例:char buf[10];
2,字符数组元素的首地址
和整型数组首地址一样,字符数组的第一个元素的地址就是字符数组的首地址,简单的来说,字符数组的数组名就是字符数组的首地址。
char buf[10];
char * p = buf;//p就代表数组⾸地址