www问答网
所有问题
数组a[3]中&a有意义吗,再&a+1呢
如题所述
举报该问题
推荐答案 2017-05-23
a是数组地址 比如 int a[3] a是int *型,或者说是int [3]型。
&a 同样是这个地址值,但类型不同 是int *[3]型。
&a+1 会移动3个int大小
也就是说 会指向a[3]的地址,当然 这个地址是越界的。
追问
哦哦,谢谢
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://www.wendadaohang.com/zd/A4AnA535155Kn31K3n.html
相似回答
c语言
中& a+1
是什么意思
答:
1、使用上了 &a 相当于将
a数组
二维化,类似于扩展成了 int b[
1]
[5] = {10, 20, 30, 40, 50};2、
&a + 1
类似于 b + 1 b + 1 加的是5个元素
,
&a + 1 也是5个元素 此时指针指向的是 b[1][0] 的地址,也即
a[
5] 的地址 3、将二维数组再次转换回一维数组 (int*)(...
已经定义
一
个一维
数组a[
4];&a表示一个二维
数组吗
?
&a+1
表示a[
1]
[0...
答:
&a不会表示2维数组,他是对
a数组
的首地址取地址值,这个时候&a就是
数组a
的首地址 2
&a+1
表示的是一个地址,哪个地址呢,从数组a的首地址便宜 sizeof(a)大小个字节的地址,在这里偏移的是 sizeof(a)= 16;3 一维数组和二维数组在内存中都是连续的内存,没有什么不同,所以维度只是人为的区...
对于
一
个二维
数组a[3]
[3]
答:
a *a **a a 是说明这个
数组有3
行。 *a 是说明每行有3个元素 **a是说明每行中的每个元素 打印函数只打印内置的数据类型,并不提供输出数组类型的。 只有具体指向某个int类型值才能正确输出来
...
a[3]
[4],则
a+1
和
&a
[1]表示行地址吧,a[
1],
*(a+1)表示列地址,为什么...
答:
首先分清楚一个
数组
只有一个排长,然后又多少行就表示有多少班长。a表示第一个班长,那么
a+1
就表示了第二个班长,也就是属排长管的范围,属行地址。
a[1],
取行地址所指向的值了,就地址降级,也就是降到班长所管的范围,也就表示具体的a[1][0]的地址了,然后
再&a[1],
又地址升级,就变成排长...
已经定义
一
个一维
数组a[
4];&a表示一个二维
数组吗
?
&a+1
表示a[
1]
[0...
答:
回到正题 &a 的类型是 T(*)[4], 既不是二维
数组
的T[x][y],也不是二级指针的T**,故&a不表示一个二维数组。
&a+1
实际上跑到了a的后面。。类似这样(不太标准)[...|...|...|...][...][...][...][...][...][...][...]---a--- | 实际上跑到了这里 因为a...
假如有
数组 a[3]
[3], 请写出以下表达式的
含义
: a[
1]
+2:a+1:
&a+1
...
答:
a+1:
a[1],
即
数组a
的第2行,其类型为int (*)
[3],
即指向含3个元素的一维整型数组的指针;可有int (*p2)[3] = a+1; (*p2)[0]即a[1][0]……&a+1: 其类型为int (*)[3][3],即指向含3x3个元素的二维整型数组的指针
,&a+1
越界了;但可有int (*p3)[3][3] = &a; (...
c语言中
,&a+1
和&(a+1)的区别是什么
答:
a是指针?是的话,&(a+1)就是a指针指向的地方+1(类型)的位置;若是指向的是
数组
的话
,&a+1
就是增加整一个数组的地址了。比如int b[8],*a=b
,&a+1
就是增加4*8=32个字节了。
在C语言里面
,&a[
0]++和&a[0
]+1
分别表示什么意思?
答:
&a[
0]++;是错误语句,编译都不会过。因为++是后++,在执行该语句时是不计算的,所以a[0]++是个表达式而不是值,显然用&取一个表达式的地址是非法操作!而如果是&++a[0];则是正确的,因为前++在执行&时已经计算过了:就是先给a[0
]+1,
然后再取a[0]的地址。&a[0]+1;是正确语句,因为...
一
个int型
数组a[
4]:
&a+1
和&(a+1)的区别
答:
所以你这个问题
中&a+1
和&(a+1)是错误的用法。&a+1指向的是
数组a[
4]之后的地址空间。&(a+1)是非法的语句,无法编译,因为a+1的结果存放在寄存器中,无法取址。如果你想表达的是取值操作,那应该使用取值操作符*,表达式变为*a+1和*(a+1),这两个表达式是有区别的:a+1表示是先取出a[...
大家正在搜
数组a[10]中有几个元素
数组a中的值赋值给数组b
将数组a存入数组b中
先输入10个数据到数组a中
下列函数在一堆数组a中
数组排序的意义
数组函数的含义
一维数组和二维数组区别
c中的数组定义与使用
相关问题
a[]是一个数组,&a[3]表示什么意思?C++
数组名a和&a有什么不同?
在C语言中,二维数组a[3][4]中,&(a+1)表示什么?
一个int型数组a[4]:&a+1和&(a+1)的区别
数组名a+1和&a+1的区别
C语言二维数组中a【i】、&a【i】、a+1、*(a+1)代...
二维数组a[2][3]中,&a[1]与a[1]有什么区别,调...
一维数组中,&a[i]的意思是?a与&a[i]的关系是?求解...