66问答网
所有问题
当前搜索:
数组首元素地址和数组地址
数据结构中
数组元素
的起始
地址和
存储地址有什么区别?
答:
(1)数组A的存储量为6*8*6=288字节 (2)按行优先存放时,元素A1,4的起始
地址
、存储地址:1000+(1*8+4)*6=1072 (3)按列优先存放时,元素A4,7的起始地址、存储地址:1000+(7*6+4)*6=1276
数组元素
的存储地址就是该元素在内存的起始地址 ...
数组
定义如下:int a[10]={1,2,3,4,5,6,7,8,9,0};请输出数组a的首址和...
答:
数组
名就代表着数组的首地址,这里a就是数组名,即数组的首地址,而a[0]是数组中的第一个
元素
,它的地址当然就是这个数组的首地址了,所以数组a的
首地址和
a[0]的地址相等。代码如下:include <stdio.h> int main(){ int a[10]={1,2,3,4,5,6,7,8,9,0};printf("数组a的首地址为\t...
数据结构、
数组
存储的
地址
怎么计算?
答:
A[i][j]=A[0][0]+(i*N+j)*L 这地方的L是
数组
中的一个
元素
所占的存储空间。或:即使A[8][5]前面有多少个元素,行下标i从1到8,列下标j从1到10,所有A[8][5]之前共有n7*10+4(74)个元素,每个元素的长度为3个字节,故共有3*74=222个字节
首地址
是SA,则A[8][5]地址是SA...
知道
数组首元素
的
地址
可否推出后续元素的地址
答:
可以,数组下一地址为
数组元素首地址
+数组类型占用字节数*数组列序数.比如整形数组 a[1]的地址:=a[0]的地址+整形占用字节数*1;a[2]的地址:=a[0]的地址+整形占用字节数*2;
为什么C语言中*(a+i)+j能表示a[i][j]的
地址
答:
a[0]、a[1]、a[2]是数组a的元素,而这个元素是数组,而不是我们通常认为的基本数据类型的数据 所以*(a+i)就是获取数组a中第i个元素,等价于a[i],而a[i]本身又是一个包含有4个int型数值的数组,a[i]是这个一维数组的数组名,我们知道数组名的本质是一个地址,是
数组首元素地址
,所以 (...
C语言一维
数组
a和&a的区别
答:
简单的说,a是
数组首元素
的地址,即a 等于 &a[0]&a是整个数组的
首地址
。这两个值相同,但代表了不同的意思。如:a+1,偏移的是一个
数组元素
的大小,而&a+1,偏移的是整个数组的大小
数组元素地址
的正确表示
答:
a是1的
地址
,a+1是2的地址,&(a+1)是2的地址的地址。题目问的是
数组
a的
元素
的地址,而&(a+1)显然是数组a的元素的地址的地址,那你的感觉怎么会对呢?要是只写a+1就对了!&p[i]中由于已有p=a;语句在先,所以&p[i]就是&a[i],a[i]是a数组第i个元素(或称元素值),&a[i]自然...
c语言中,字符
数组
的
首地址
字符指针的地址也是第一个字符的地址吗?为什 ...
答:
这个地址也可以指向单个字符
元素
,也可以指向字符串。如:char a;a=getchar();char *p;//变量p本身有一个地址.p=&a;//p保存了变量a的地址,也就是说p指向了a.同样地,char a[20]="english";char *p=a;//p保存了字符
数组
的
首地址
,也就是说p指向了该数组的第一个元素。求赏分~
数组
名代表数组第一个
元素
的
地址
,二维数组三维数组也这样吗?
答:
b[0]是第一行第一个
元素
的
首地址
(也可以说是
数组
第一个元素的地址)可是从数值上来说,b和b[0]是相等的。变量在进行赋值时,需要接收数据的变量与值变量(或常量)是相同类型才可以 回到你的问题中 int a[2]={1, 2}; //一维数组 int b[1][2]={1, 2}; //二维数组 int * p1=a;...
C语言中,
数组
在内存中占一片连续的存储区,由什么来代替它的
首地址
?
答:
C语言中规定,
数组
名就代表了该数组的
首地址
。整个数组是以首地址开头的一块连续的内存单元。如有字符数组char c[10]。设数组c的首地址为2000,也就是说c[0]单元地址为2000。则数组名c就代表这个首地址。因此在c前面不能再加地址运算符&。如写作scanf("%s",&c);则是错误的。在执行函数printf...
<涓婁竴椤
1
2
3
4
5
6
7
8
9
10
涓嬩竴椤
灏鹃〉
其他人还搜