00问答网
所有问题
当前搜索:
数组元素地址的表示
C语言中
数组
首地址和数组第一个
元素的地址
有什么区别呢
答:
C语言中数组首地址和数组第一个
元素的地址
关系如下:1、它们的地址值是相等的。2、第1个元素的地址如果是p,则p+1就是第2个元素的地址。3、
数组的
首地址如果是p,则p+1就跳过这个数数组而指向这个数组最后一个元素最后一个字节的下一字节。
C语言, a就是
数组的
首
地址
啊,那a++不也是地址吗? 还有,p[5]
表示
...
答:
a是
数组的
首
地址
,那a++ 也是地址, 这里的地址 是:a地址 + 1 * sizeof( a 的类型)p[5] 在声明里
表示
声明 p 是数组,它有5 个
元素
。例如: int p[5];p[5] 在语句里表示 下标变量,它是数组p里的第6个元素。 因下标 从 0 起始。 例如:p[5]=666;语句里 有等式: p[5] ...
设有数组a[10],
数组元素
a[3]的
地址
可以写成
答:
设有数组a[10],
数组元素
a[3]的
地址
可以写成*(a+3)
C语言、二维
数组
指针中的 * 和 &
答:
不难理解,这代表的是第i行的首地址,也就是第i行的第一个
元素的地址
,如书所说,a+i,a[i],&a[i][0]的值是一样的,还有一个是*(a+i),这个就需要转转脑筋了,二维
数组
用指针怎么
表示
?用二维指针即:**a,那么a[3][4]这个数据(注意是一个数值)用指针怎么表示呢?*(*(a+3)+...
int a[3] [4],*P=a; 能
表示数组元素
a[1][2]
地址的
是 A: *(a[1]+2...
答:
首先a[3][4]是一个二维数组,但是他开辟的内存还是连续的。他要存储十二个整形书,所以开辟了十二个单元,p=a也是就说p这个指针指向了这个
数组的
第一个单元。那么p+6刚好就是a[1][2],所在的
地址
了,你对哪个答案有疑问的话,可以问我。
a[i]后的[]是变址运算符?
答:
设数组a的首地址为1000。C语言允许把一个二维数组分解为多个一维数组来处理。因此数组a可分解为三个一维数组,即a[0],a[1],a[2]。每一个一维数组又含有四个元素。例如a[0]数组,含有a[0][0],a[0][1],a[0][2],a[0][3]四个元素。数组及
数组元素的地址表示
如下:从二维数组的...
数组名
表示
的是该
数组元素
在内存中的什么?
答:
,也不会为a单独分配空间,a只代表一个地址,就是a[0]
元素的地址
。int *p;这里的p也是一个指针变量,会为它分配空间,在对p解引用时,会先在符号表中查找p变量的地址,然后再到这个地址取出p变量的值(这个值是其它变量的地址),然后再到这个值
表示的地址
取出那里存放的值。关于你的说的两种情况...
...也就是第一个数的
地址
,而a【1】也是代表一个
元素
数的地址,这_百度...
答:
数组的
首
地址
是指向a[0],不是a[1]&a[1]等价于a+1也就是printf("%x\n",&a[1])和printf("%x\n",a+1)都可以表示a[1]的地址。而a[1]
表示数组
的
元素
,也可以用*(a+1),还可以用*(&a[1])
采用指针变量
表示地址的
方法输入输出
数组
中的
元素
?
答:
其中a
表示数组
名,也是指针变量所存的起始
地址
/ (a + i)= i;/ 通过地址a+i可以找到
数组元素
a[i] ,而*(a+i) 的值就是a[i]的值 / } for (i = 0 ;i < 5 ;i ++ ){ printf("a[%d]=%d\n ",i,(a + i));} system("pause ");} ...
为什么C语言中*(a+i)+j能
表示
a[i][j]的
地址
答:
所以*(a+i)就是获取数组a中第i个元素,等价于a[i],而a[i]本身又是一个包含有4个int型数值的数组,a[i]是这个一维
数组的数组
名,我们知道数组名的本质是一个地址,是数组首
元素地址
,所以 (a+i)+j就是
表示
下表第i行的第j个
元素的
地址了。所以,(a+i)+j表示的含义是元素a[i][j]的...
<涓婁竴椤
1
2
3
4
5
6
7
8
9
10
涓嬩竴椤
灏鹃〉
其他人还搜