1.首先通过指针指向一个数组的首地址; 2.然后通过地址偏移,来获取对应地址的值,当知道数组元素地址之后,可以直接通过 * 获取该地址对应的值;示例代码如下:/***/ //@Author:猿说编程 //@Blog(个人博客地址): www.codersrc.com //@File:C语言教程 - C语言 使用指针遍历数组 //@Time:2021/06/18 08:00...
int value1 = *(arr + 1); //数组首地址偏移 +1 ,获取数组第二个元素的值 int value2 = *(arr + 2); //数组首地址偏移 +2 ,获取数组第三个元素的值 int value3 = *(arr + 3); //数组首地址偏移 +3 ,获取数组第四个元素的值 当知道数组元素地址之后,可以直接通过*获取该地址对应的值,使用...
*P指向整个数组的指针,sizeof(*P)为整个数组类型的字节大小为16. 获得空间大小 用数组指针遍历数组: printf("%d ",(*P)[i] );// *P代表整个数组的空间 [i]代表其中的第i个 #include<stdio.h>intmain(){inta =1;intarr[] = {1,2,3,4};int*p = &a;int(*P)[4];//可以指向4个连续int型存储...
数组是一个整体,它的内存是连续的,那么我们可以直接通过首地址(数组名默认就是首地址)偏移来达到数组遍历的效果,内存示意图: int arr[] = {1,2,3,4,5}; int value0 = *(arr); //arr默认指向数组的首地址,获取数组第一个元素的值 int value1 = *(arr + 1); //数组首地址偏移 +...
// 采用指针遍历数组voidmain(){// 定义数组intarr[]={1,2,3,4};// 采用指针对数组进行赋值int*arr_p=arr;// 循环遍历数组inti=0;for(;i<4;i++){printf("位置%d的值是:%d\n",i,*(arr_p+i));}// 位置0的值是:1// 位置1的值是:2// 位置2的值是:3// 位置3的值是:4getchar();...
内存分析图如下,一个指针变量占用2个字节,一个int类型的数组元素占用2个字节 二、用指针遍历数组元素 1.最普通的遍历方式是用数组下标来遍历元素 输出结果: 2.接下来我们用指针来遍历数组元素 先定义一个指针,指向数组的第一个元素 p的值是a[0]的地址,因此,现在我们利用指针p只能访问数组的第0个元素a[0],用...
这与一般的算术运算有些不同,因为指针的值将增加指针所指向的数据类型的大小。 我们可以通过在循环中使用指针的自增操作来遍历数组,使指针依次指向数组的每个元素,对其执行一些操作,并在循环中更新指针。 指针自增的规则如下: 新地址 = 当前地址 + i * 数据类型的...
这种写法表示的是两个指针变量用"己值"做减法。 2.2.4 示意图 现在,继续来完善上面的示意图,加入指针变量pInt的己值。 所以,一般而言,"己值"对于指针变量pInt来讲,是自己的数据值;对其它的int类型的变量来讲,就是它们的地址。 2.3 他址 2.3.1 "他址"的概念 ...
2.接下来我们用指针来遍历数组元素 先定义一个指针,指向数组的第一个元素 // 定义一个int类型的数组 int a[4] = {1, 2, 3, 4}; // 定义一个int类型的指针,并指向数组的第0个元素 int *p = a; 1. 2. 3. 4. 5. p的值是a[0]的地址,因此,现在我们利用指针p只能访问数组的第0个元素a[0]...
更改上面的代码,使用数组指针来遍历数组元素: 数组在内存中只是数组元素的简单排列,没有开始和结束标志,在求数组的长度时不能使用,因为 p 只是一个指向 int 类型的指针,编译器并不知道它指向的到底是一个整数还是一系列整数(数组),所以 sizeof(p) 求得的是 p 这个指针变量本身所占用的字节数,而不是整个数组占...