99问答网
所有问题
数组a [5],a 表示数组首元素地址,那么,为什么a =a+4,是错的?求大神解释。
如题所述
举报该问题
推荐答案 2013-12-30
什么语言?如果是C/C++你这样写编译器不会报错,可以运行,你指的是错的是指什么错了?
追问
我试了,确实会报错的,会不会编译器的问题啊
追答
编译器永远不会出错
追问
我觉得不同的编译器会不同,毕竟C++语言还很复杂,光编译器就有好多,我在vc ++上运行确实会报错的
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://99.wendadaohang.com/zd/WBettOtz7teWtjezWtX.html
相似回答
...inta
[5],
*pa=a; pa+=2; 书上说pa
=a+4,
可是我认为a也是一个指针,和pa...
答:
int a[5], 是声明了一个长度为5的数组,同时数组名a也表示该数组的首地址
。pa=a; 这是将数组a的首地址赋给一个指针变量pa,pa+=2;(即pa=pa+2) 此时pa指向数组的第三个元素。至于你说的pa=a+4也是正确的,此时pa指向数组a的第五个元素。
C语言二维
数组
和指针的问题
答:
定理是酱紫的:数组的地址 等于 数组首元素的地址
。括弧(相等的只是地址!!!如上所述,a+1肯定是不等于*(a+1)的,原因如下:类型都不一致怎么比(印象中老版本编译器可以)(a+1)+1是绝不可能等于*(a+1)+1的。要说等于的话是这样等于(int)(a+1)==(int)*(a+1)或者这样(int*)(...
C语言问题
,求大神
解决,谢谢啦,我是小白,最好能够
解释
下原因
答:
a是数组a的
第一个
元素,a[
0],一维数组情况下,可以把a理解为一个指针。指向
数组首地址
。不同点在于,指针可以改变指向的对象,而数组是不可改变指向的对象的,你不可以修改a指向哪里,但是你可以修改p指向哪里。a[p-a]
表示a[
0],因为p和a都指向同一个地址例如0XFFFFF-0XFFFFF这种。就像汇编里面...
...int a
[5]
;
为何
语句:a++;是非法的,而语句:*(
a+
3)是合法
的?
_百度知 ...
答:
这是指针里面的内容
,a表示的
是
数组的首地址,
注意它是固定不变的,就像一个常量一样,不能改变.而*(a+3)表示的是数组里第四个数,*a是第一个数,*(a+1)是第二个,这是数组特有的,因为数组在内存里是顺序存放的,所以加1就表示下一个数的地址,再加*,就
表示是
那个数了.具体可以参考c语言指针的...
...int a
[5]
; 则对
数组
中首
元素的地址
可以
表示
为
a
.&a不对吗?
答:
数组及
数组元素的地址表示
为:a是二维数组名,也是二维数组0行的首地址,等于1000。a[0]是第一个一维数组的数组名和首地址,因此也为1000。(a+0)或*a是与a[0]等效的,它表示一维
数组a[
0]0号
元素的首地址
。也为1000。&a[0]是一维
数组a的
0列
元素首地址,
同样是1000。因此
,a,a[
0],*(...
若有定义:int a
[5],
*p
=a
; 则对a
数组元素地址
正确引用的是( )。 &a...
答:
对a
数组元素地址
正确引用 p+2 。p指向a首地址(也就是a[0]的地址),p+2就是a[2]的地址,相当于&a[2]。&a
[5]是错的,
访问越界了
,数组元素
最后一个是a[4]。a
表示数组
的
首地址,
本身是地址常量,不能赋值。所以a++是错了。&a也是错的,a本身就是地址。
...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={1,3,5,7,9}; 是不正确的。当然,你也可以在定义
数组a的
时候给它赋值。int a[10]={1,3,5,7,9};意思是a[0]=1;a[1]=3;a[2]=5;a[3]=7;a[4]=9;a
[5],a
[6],a[7],a[8],a[9]这几个没赋值的默认为0。因为两者代表的意思不一样啊!int a[10];定义
数组,
int a[...
求大神解释
下面代码 指针方面的
答:
printf("%d\n",*pp ++); //*pp等于取p数组第一个元素,第一个元素其实为a
数组的
指针,所以打印a数组的第一个
元素的地址,
++不用管,因为是打印后才++ printf("%d\n", *pp-a); // *pp现在是p[1],p[1]其实是a地址加1 ,*pp-a 相当于a+1-a 所以打印1 printf("%d\n", **...
大家正在搜
a数组中首元素的地址可以表示为
不能表示a数组元素的表达式是
数组元素地址的表示
数组a的第三个元素表示为
不是对a数组元素的正确引用
对a数组元素的非法引用是
数组a[10]中有几个元素
通过含有n个元素的数组a
数组a的第一维大小
相关问题
C++编程:数组a中的每个元素>=0,查找数组中最小非零元素...
c语言中二维数组的a代表是0行首地址,那*a不就是首个元素吗...
数组名是首元素的地址。所以a[0]等于&a[0][0] a等...
C语言菜鸟求教:请问下面这段解释中“*(a+1)表示的是数组...
已知一个整型数组a[5],其各元素值为4,6,8,10,12...
若有定义:int a[5], *p=a;则不能正确表示数组元...
C语言若定义int a[5],*p=a;则对a数组元素正确引...
二维数组a[4][5][6](下标从0开始计,a有4*5*6...