精华内容
下载资源
问答
  • 数组元素地址的表示
    千次阅读
    2018-12-04 15:27:30

    二维数组
    二维数组本质上是以数组作为数组元素的数组,即“数组的数组”。
    二维数组元素表示方法

     a                //  数组首行的地址
    
     a[0]            //元素a[0][0]的地址。 
     
     二维数组可以看成是一维数组的数组,(a[0] 、a[1] 、a[2] ) 。
     a[0] 可以认为是数组名,数组名代表数组首元素的地址, a[0] 代表 a[0][0]的地址
     
     *(a+0)        //元素a[0][0]的地址
     
    因为a是二维数组名,即是一维数组(a[0] 、a[1] 、a[2] )这三个元素的的首地址。
    a+0就是 a[0]的地址。
    *是取指针的值。
    那么*(a+0)就是取 a[0]的值。 a[0] 是一个数组名,他代表数组首元素a[0][0]的地址。
    
     a+1             // 数组第二行的地址
    
     a[1]+2       //  元素a[1][2]的地址        a[1] 是数组名,数组名是指向数组首元素的地址, a[1]+2  数组名+2 代表数组的第三个元素的地址。
     
     *(a+1)+2     //  元素 a[1][2]的地址       a+1  就是 a[1] 的地址 ,*(a+1)  就是 a[1][0]的地址, *(a+1)+2  就是 a[1][2]的地址。
    
     *(a[1]+2)      //元素 a [1][2] 的值         a[1] 是数组名。  a[1]+2  是 a[1][2]的地址,*(a[1]+2) 就是 元素 a[1][2]的值了。
    
    *(*(a+1)+2)     //元素 a[1][2]的值       a+1 代表 a[1]的地址,*(a+1) 代表 a[1][0] 的地址,*(a+1)+2 代表 a[1][2] 的地址。
    
    更多相关内容
  • 一,二维数组的架构与逻辑 1.a[3][4] = {a[0], a[1], a[2]} ={{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10... 每个一维数组包含n个元素 不废话,直接看图   2,确定的公式 a[0] = a[0]+0 = &a[0][0] = *(a+0)...

    一,二维数组的架构与逻辑

    1.a[3][4] = {a[0], a[1], a[2]} ={{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};

    二维m×n  -->  m个一维数组  -->  每个一维数组包含n个元素

    不废话,直接看图

     

    2,确定的公式

    a[0] = a[0]+0 = &a[0][0] = *(a+0)+0 = *a

     a = &a[0] = &(&a[0][0]) = &(*a) a;

    二, 二维数组中按层级解释

    1,二维数组中的一维数组

    a[0] = a[0]+0 = &a[0][0] = *(a+0)+0 = *a

    a[1] = a[1]+0 = &a[1][0] = *(a+1)+0 = *(a+1)

    a[n] = a[n]+0 = &a[n][0] = *(a+n)+0 = *(a+n)

    2,二维数组中一维数组的元素地址

    a[0][2] --> a[0]+2 = &a[0][2] = *(a+0)+2 = *a+2

    a[1][3] --> a[1]+3 = &a[1][3] = *(a+1)+3 = *(a+1)+3

    a[i][j] --> a[i]+j = &a[i][j] = *(a+i)+j = *(a+i)+j

    3,在指针数组和数组指针中更需小心

    展开全文
  • c语言的数组地址表示方法

    千次阅读 2018-07-01 21:23:43
    c语言的数组地址表示方法 今天刚发现了c语言数组地址表示另一种不错的方法。这个方法跟指针结合起来,对于操作内存来说,非常方便。 #include<stdio.h> int main(void) { int c[5] = {1,2,3,4...

    c语言的数组的地址的表示方法


    今天刚发现了c语言数组地址表示另一种不错的方法。这个方法跟指针结合起来,对于操作内存来说,非常方便。

     #include<stdio.h>

        int main(void)

        {

              int c[5] = {1,2,3,4,5};

              int *ptr = (int *)(&c +1);

              printf("%d %d\n", *(c +1), *(ptr-1));

        }

         上边的代码执行完毕后,会出现什么结果?

          *(c+1),应该很明显: 2;

          *(ptr-1),结果是: 5;

        分析:

          可以试一下一下代码:

         printf( “%p\n”, c+5 );

          printf("%p\n", &c[5]);

         printf("%p\n", &c+1);

         运行以上3条代码后,你就会惊奇的发现,它们输出的地址,完全一致。

         也就是说, &c+1表示了该数组最后一个元素的下一个地址。,而&c 与 c 或者 &c[0] 一致,都表示该数组的首地址。

         另外,&c+1 比c+5 和 &c[5]使用更方便: 它不必知道将要操作的数组的sizeof。    

          或许还有其他更简便的方法吧?

    转载自:http://www.cnblogs.com/sophia0405/archive/2008/10/23/1317802.html

    展开全文
  • 1、数组元素地址 :该数组有10个元素数组元素即a[0],取的是该元素地址。 2、数组地址:就是数组名字a的地址。 3、整个数组地址:就是整个数组地址,取地址&amp;a。 下面的代码进行测试: #...

    现在定义一个char a [10];的数组,下面对这几个名词进行分析:

     

    1、数组首元素地址 :该数组有10个元素,数组首元素即a[0],取的是该元素的地址。

    2、数组首地址:就是数组名字a的地址。

    3、整个数组地址:就是整个数组的地址,取地址&a。

     

    下面的代码进行测试:

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    int main(void)
    {
    	char a[10];	//1 * 10 个字节
    
    	/*类型的本质:固定内存块大小别名
    	可以通过 sizeof()测试
    	*/
    
    	printf("sizeof(a) = %d\n", sizeof(a));
    
    
    	//打印地址
    	//数组名字,数组 首 元素地址,数组首地址
    	printf("a:%d, &a:%d &a[0]:%d\n", a, &a,&a[0]);
    
    
    	//a, &a的数据类型不一样
    	//a, 数组首元素地址, 一个元素1个字节,+1《==》 +1
    	//&a, 整个数组的首地址,一个数组1*10  = 10个字节,+1,《==》 +10
    	printf("a+1:%d, &a+1:%d  &a[1]:%d\n", a + 1, &a + 1, &a[1]);
    
    
    	printf("\n");
    	system("pause");
    	return 0;
    }

     

    测试结果:

     

    示意图:

              以上的测试结果说明,a 与&a的步长不一样,a代表的是数组首元素的地址,也是数组的首地址,加1等价于加一个数组类型的长度;&a代表的是整个数组的地址,加1等价于加整个数组的长度,此例子中也就是加10。

     

     

     

    展开全文
  • 求数组指定元素的地址/求数组元素的下标 一:数组元素的存储 由于数组一般不做插入和删除操作,也就是说只要建立了数组,则结构中的数据元素的个数和元素之间的关系就不再发生变动。因此常采用顺序存储结构来表示...
  • 数组元素的三种表示方式

    万次阅读 2017-02-18 10:19:07
    介绍了数组元素的三种表示方式:下标遍历、数组名和指针变量
  • 三维数组元素存储地址计算(极其易懂版)

    千次阅读 多人点赞 2021-05-25 23:33:07
  • C语言指向数组元素的指针

    千次阅读 2021-05-21 16:26:57
    指向数组元素的指针和运算法则所谓指向数组元素的指针,其本质还是变量的指针。因为数组中的每个元素,其实都可以直接看成是一个变量,所以指向数组元素的指针,也就是变量的指针。指向数组元素的指针不难,但很常用...
  • 1.数值名c是一个地址常量,表示数组元素地址 2.&c[0]也表示数组元素地址 3.但&c表示的是整个数组的首地址。 这三者的地址值是相同的,但第3与1、2含义却不一样,1与2不管是地址值还是含义都是一样的...
  • 数组元素地址和数组首地址

    千次阅读 2020-10-07 21:38:16
    printf("数组元素地址 :%d\n",arr); //数组元素地址 2293280 printf("数组首地址 :%d\n",&arr); //数组首地址 2293280 printf("数组元素地址+1 :%d\n",arr+1); //数组元素地址 2293284 ...
  • 数组名是不是数组元素地址

    千次阅读 2020-01-08 15:36:31
    在声明中,表示引用 (2)p = &i; 在表达式里,是取址运算符 *符号 (1)int *p; 在声明中,表示指针 (2)*p = i; 在表达式里,是解引用运算符 左值和右值 一般来说,赋值操作等号左边是(可修改的)左值,右边...
  • 二维数组元素地址

    万次阅读 多人点赞 2017-08-17 10:18:24
    一维数组元素地址大家都比较容易理解,但对于二维数组,就很容易搞混了.今天我又被这个问题给弄糊涂了,翻了翻老谭的书本,对这个问题有了更深的认识.  首先给出一个二维数组a,它的定义为:  int a[3][4] = ...
  • 关于数组名:数组名是数组元素地址

    千次阅读 多人点赞 2022-01-17 18:07:12
    为什么数组表示的是数组元素地址捏^_~ 真的不来看看嘛(╹ڡ╹ )
  • 引用数组元素

    千次阅读 2019-04-24 17:15:47
    引用一个数组元素可以有以下两种方法: (1)指针法。有 *(a+i), *(p+i) 两种表现形式,都是用间接访问的方法来引用数组元素。 (2)下标法。有a[i] 和 p[i] 两种形式。在编译时这两种形式也要处理成 *(a+i) 或 *(p+...
  • C语言引用一个数组元素的三种方式

    千次阅读 2022-03-03 20:11:44
    其中a是数组名,p是指向数组元素的指针变量,其初值为p = a。 代码实现: #include<stdio.h> #include<stdlib.h> int main(void){ int a[10], i; int *p; p = a; // 数组首地址赋值给p for(i = 0; ...
  • C++ 查找数组元素

    千次阅读 2022-03-17 16:19:29
    C++ 查找数组元素
  • 数组元素地址和数组首地址区别

    千次阅读 2019-09-18 18:15:46
    printf("数组元素地址 :%d\n",arr); //数组元素地址 2293280 printf("数组首地址 :%d\n",&arr); //数组首地址 2293280 printf("数组元素地址+1 :%d\n",arr+1); //数组元素地址 2293284 ...
  • 数组元素反转

    千次阅读 2020-07-08 15:48:36
    数组元素反转思路 1.数组元素反转,其实就是对称位置的元素交换。 2.通常遍历数组用的是一个索引,int i=0, 现在表示对称位置需要两个索引 int min=0; int max=array.length-1; 3.如何交换两个变量的值? int a=10...
  • 二维数组和数组元素地址

    千次阅读 2017-07-28 15:58:09
    二维数组和数组元素的地址 ...通过我们前面学过的知识可以知道,数组名是一个地址,其值是第一个元素的地址,而此地址的基类型就是数组元素的类型,而二维数组中同样a[0], a[1],a[2]都是一维...
  • 数组名+1表示以一个数组元素大小为步长移动指针 &数组名 就表示 整个数组的内存块地址 &数组名+1表示以一个数组内存块大小为步长移动指针 但是一维数组和多维数组有部分差异 差异1: 为数组指针赋值 ...
  • matlab数组元素个数

    千次阅读 2021-05-06 00:58:08
    A= 1 7 7 2 3 5 6 8 0 原来矩阵没有 第4行和第4列, MATLAB 自动 增加行列数,对 未输入的元素赋 值0 2函数生成矩阵 MATLAB提供了一些函数来生成特殊矩阵,常见命令有:(1) zeros(生成零矩阵) ; (2) eye(生成对角元为1.....
  • 展开全部c语言中,数组元素的...数组元素用整个数组的名字和它自己在数组中的顺序位置来表示。例如,a[0]表示名字为a的数组中的第一个元素,a[1]代表数组a的第二个元素,以此类推。对于VB的数组,表示数组元素时应注...
  • 引用数组元素的四种方式

    千次阅读 2020-02-29 23:10:58
    //注意a++是不可的,因为a本来就代表了数组的首地址,a是不可改变的。 { printf ( "%d\n" , * p ) ; } printf ( "-----------------\n" ) ; for ( p = a , i = 0 ; i < 5 ; i ++ ) ...
  • 指针 二维数组元素引用

    千次阅读 2020-12-30 16:30:24
    二维数组元素指针引用 指针与一维数组和二维数组 1.定义 2.关系 3.数组指针和指针数组的区别 数组指针(也称行指针) 定义 int (*p)[n]; ()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的...
  • Javascript中数组元素是什么

    千次阅读 2021-07-08 12:00:41
    数组元素也是一种变量,其标识方法为数组名后跟一个下标,下标表示了元素在数组中的顺序号;数组元素通常也称为下标变量。 Array 数组对象是 JS 的内置对象,它可以用一个变量来存储一系列相同或不同类型的值,其中...
  • 用指针表示数组地址与值

    千次阅读 2018-01-26 22:50:13
     p表示a这个数组的首地址,p == &amp;a[0]; p+i,a+i都表示这个数组的第i+1个值的地址,==&amp;a[i];  *p表示a[0]的值,*p = a[0]; 指针法: *(p+i),*(a+i)都表示这个数组第i+1个值,==a[i];  ...
  • 二维数组的首地址、首行地址元素地址

    万次阅读 多人点赞 2018-10-11 10:39:44
    首先定义一个简单的三行四列的数组: int a[3][4] = { 1,2,3,4,5,6,7,8,9,10,11,12 };  其中: a代表第0行的首地址,其步长为一行的长度(16B), 所以a+1代表第1行的首地址,比a大16;a+2代表第2行的首地址...
  • python简单获取数组元素个数的方法

    千次阅读 2020-11-20 23:59:39
    python简单获取数组元素个数的方法更新时间:2015年07月13日 17:54:46 作者:pythoner这篇文章主要介绍了python简单获取数组元素个数的方法,实例分析了Python中len方法的相关使用技巧,非常简单实用,需要的朋友可以...
  • C语言中数组的首元素地址和首地址

    万次阅读 多人点赞 2018-09-07 20:26:38
    数组的首元素地址表示数组的首个元素地址数组的首地址表示整个数组地址。 #define _CRT_SECURE_NO_WARNINGS #include&lt;stdio.h&gt; #include&lt;stdlib.h&gt; int main(int argc, ....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 946,764
精华内容 378,705
关键字:

数组元素地址的表示