{ int arr[5] = { 11,12,13,14,15 }; int i, * p; printf("下标法:\n"); for (i = 0; i < 10; i++) printf("arr[%d]=%d ", i,arr[i]); printf("\n 地址法:\n"); for (i = 0; i < 10; i++) printf("arr[%d]=%d ", i, *(arr+i)); printf("\n 指针法:\n...
元素:数组名[下标] 地址:&数组名[下标] int a[5]; 那么数组a的5个元素分别为a[0], a[1], a[2], a[3], a[4],对应的地址分别为&a[0], &a[1], &a[2], &a[3], &a[4]。 2.地址表示法 元素:*(a+i) 地址:a+i 一个数组的数组名可以用来表示这个数组的起始地址,即第一个元素的地址。
代码解释:首先我们将一维数组arr的地址放到一个数组指针*pa里面。 使用方法1:我们之前就知道,如果我们想要访问一个数组的元素内容,我们可以通过下标访问的形式。那这里第一个for循环就可以很好解释,(*pa)==arr,(*pa)[i]==arr[i] 使用方法2:*pa得到首元素地址,对首元素地址进行解引用操作,即可拿到首元素,那么...
,说明已经通过指针间接修改了数组元素的值,跟指向一个普通int类型变量是一样的。 由于数组名代表着数组的首地址,即a == &a[0],因此第8行代码等价于: // 让指针指向数组的第0个元素 p = a; 1. 2. 内存分析图如下,一个指针变量占用2个字节,一个int类型的数组元素占用2个字节 二、用指针遍历数组元素 1...
&数组名:取出的是整个数组的地址(打印出首元素地址作为整个地址地代表) &数组名[0]:取出的是数组的首元素地址 数组名:取出的是数组的首元素地址 注意: ①绝大多数时候,&arr[0]和arr都是首元素地址,但是也有例外: sizeof(arr)/sizeof(arr[0]);arr表示整个数组,sizeof(arr)表示整个数组的大小。
include<stdio.h>#define ARRAY_LEN 100int main(void) {int arr[ARRAY_LEN],len,i,*p=arr,*max=arr;printf("请输入初始数组元素个数:");scanf("%d",&len); printf ("\n"); printf ("===\n\n"); printf("请输入数组内容,共%d个元素: ",len);for(i=0; i<len; p...
在使用数组的场合中,我们常见的一种访问方法是使用下标访问数组元素,如:array[2] = 1,此语句是将该数组的第三个元素赋值为1.[ ]符号中的数字可以认为是在数组基地址上的偏移量,可以通过改变这个偏移量来访问整个数组。 2.以指针访问的方式访问数组
#define_CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include<string.h>//写一个函数打印arr数组的内容,不使用数组下标,使用指针//arr是一个整形的一维数组intmain() {intarr[] = {1,2,3,4,5,6,7,8,9,10};int* pa =arr;intsz =sizeof(arr) /sizeof(arr[0]);inti =0;for(i =0; i < ...
内存分析图如下,一个指针变量占用2个字节,一个int类型的数组元素占用2个字节 二、用指针遍历数组元素 1.最普通的遍历方式是用数组下标来遍历元素 1 // 定义一个int类型的数组 2 int a[4] = {1, 2, 3, 4}; 3 4 int i; 5 for (i = 0; i < 4; i++) { ...