99问答网
所有问题
一维数组指针与二维数组指针
*数组名的区别
为什么*a是第一个元素的值而*b却是第一个元素的地址值
举报该问题
推荐答案 2012-11-21
è¿ä¸ªåªæ¯å®ä¹ä¸çåºå«ï¼æ°ç»åæ¯èªå®ä¹çï¼æ¯å¦a[] b[][]ä¸aå°±æ¯ä¸ç»´æ°ç»æéï¼bå°±æ¯äºç»´æ°ç»æéï¼æ°ç»å没æç¹æ®çè¦æ±ã
è¿ä¸ªæ¯æ°ç»çåå¨ç»æé®é¢äºï¼ä¸ç»´æ°ç»å¯ä»¥çåä¸è¡ï¼å æ¤aå°±æ¯ç¬¬ä¸ä¸ªå ç´ çå°åï¼*aå°±æ¯ç¬¬ä¸ä¸ªå ç´ çå¼ï¼èäºç»´æ°ç»å¯ä»¥çåä¸ä¸ªç©éµï¼å æ¬è¡ååï¼å ¶ä¸çb就类似äºåå ä¸ç»´æ°ç»ä¸æ¯åçå°åï¼å æ¤ç¬¬ä¸ä¸ªå ç´ å°±ç¸å½äºä¸ä¸ªå°åäºï¼èbè¿æ¶æ¯è¿ä¸ªå°åçå°åï¼æ以*bå°±ç¸å½äºç¬¬ä¸ä¸ªå ç´ çå°åã
a 0 1 2 3 ä»è¿ä¸ªç®å¾å¤§è´å¯ä»¥çæç½ææ
b 0 1 2 3
1 2 3 4
2 3 4 5
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://99.wendadaohang.com/zd/ejjjzjtOv.html
其他回答
第1个回答 2012-11-21
int a[] 中a是一维数组名是一级指针。*a是一级指针所指向的内容即元素值。
Intb[][]中b是二维数组名是二级指针。*b是二级指针所指向的内容即一级指针的值就是第一个元素的地址。对多级指针p,当前面有一个*运算符时。p就会降一级,例如int***p=a[][][];那么p就是三级指针,*p是二级指针,**p是一即指针,***p是数组首元素;并且p,*p,**p的值是一样的但意义不同。
相似回答
二维数组和一维指针数组
的区别
答:
从图中可以看出,board作为
二维数组
是由两层构成的,第一层为纵向数组,第二层为横向数组。 也就是说board是纵向数组的首地址,也就是纵向数组的第一个元素board[0]的地址。这就解释了board的值为什么等于&board[0]的值。而(board+i)就是对数组的第i的元素进行访问,所以*board就是*(board+0),...
数组指针
的指向
一维数组和二维数组
的区别
答:
一、指向
一维数组
的
指针
变量设一维数组为a[n]定义方法:*指针变量名即*P这个p一般指向的一维数组的首地址,即p=a,或者p=&a[0];p,a,&a[0]均指向同一单元,它们是数组a的首地址,也是0号元素a[0]的首地址。p+1,a+1,&a[1]均指向1号元素a[1]。类推可知a+i,a+i,&a[i]。例子:mai...
关于
指针与数组
表示
答:
(1)行
指针
。定义格式:类型关键字 (*p)[常量N]例如:int (*p)[4]表示定义了一个可指向4个整型数的
一维数组
的指针p(常量N规定了行指针所指向的一维数组的长度,不可省略)初始化方法:p=a或p=a[0]。其中a表示
二维数组
的首地址相当于&a[0][0]。而a[0]表示二维数组时为a[0]+0,即&a...
关于
二维数组和一维指针数组
的区别
答:
不同的地方:a[1] -- 如果一组10个,这个表示的第1(0开始)组的开始地址。a[1]和&a[1][0]相同。而b[1]就是第1个数。说道
一维指针数组
,int* d[10], 本质上和int b[10]没有区别,b里边存了10个int值,而d里边存了10个int地址。地址也是值,只是我们通常不直接用这个地址,而是用...
一个指向
一维数组
的
指针
,为什么可以指向
二维数组
?
答:
二维数组
下标代表的是行和列的个数。int (*p)[3]; 这里是用指针的形式 声明一个新的数组,p = a; 这里把a数组的首元素地址赋给
指针数组
,此时新声明的指针数组就指向了a数组,*p就等于a[0];所以 (*p)[2]等价于a[2] = 3;
一维数组
下标为二的元素 ...
C语言中
二维数组
行
指针
是什么
答:
array[0] 是一维数组的名字,它指向的是
一维数组array
[0]的首地址,所以 *array[0]与array[0][0]为同个值。而 array 是
二维数组
的名字,它指向的是所属元素的首地址,其每个元素为一个行数组。它是以‘行’来作为
指针
移动单位的,如array+i 指向的是第 i 行。对 array 进行 * 运算,得到...
C 语言指针的
指针和二维数组
的区别?
答:
指针的
指针和二维数组
完全俩东西,二维数组是
一维数组
的一维数组,元素是数组,所以可以隐式转化为int (*)[3],跟int **两回事,扩展到更多维或其它类型也是成立的,只能隐式转化为第一维的元素的指针 补充说明下隐式转化为指针,简单说就是这样(T是任意类型)设有一个数组T a[10];a的类型是“...
C语言
指针
指向
一维数组与二维数组
?
答:
3和2是一样的,也是会报错的。可以使用行
指针
double (*p)[3]=data;指向
数组
第0行,也就是我们平常理解的第一行。访问方式,假设data是i行j列,*(*(p+i)+j)就是第i行j列的元素值,也就是data[i][j]的值。也可以使用列指针double *p = data[0]指向第0行0列,访问方式如下:...
为什么
一维数组
a[i]
指针
p,,可以有p=a;但是当
二维数组
a[i][j]时却不...
答:
二维数组
里的a是
二维指针
,其实二维指针有两个指针,行
指针与
列指针,你定义的指针p只是
一维指针
,如果你这样定义p:int(*p)[3],这就是一个二维指针变量,就可以用p=a了,
大家正在搜
指向一个数组的指针是几纬
一维指针指向二维数组
指向一维数组的指针
三维数组指针
一维数组与二维数组的区别
一维指针变量怎么定义
一维数组的指针表达方式
行指针是二维指针吗
指针与二维数组几种表示方法
相关问题
关于二维数组和一维指针数组的区别
C语言 指针与二维数组?
指向二维数组的指针
如何在c语言二维数组中使用指针
普通的指针变量可以指向二维数组吗?
二维数组名和指针的关系
C语言中二维数组行指针是什么