1楼:幻想秘境
a[0]:是获取a这个数组第0个元素的值;
&a[0]:是获取a这个数组第0个元素的地址;
比如把数组比作一个小区,a[0]就是代表小区里某栋房子本身,而&a[0]则表示某栋房子的门牌号,你知道了门牌号,并且知道它在a小区,那么你就能找到这栋房子.
望采纳!!^_^
2楼:匿名用户
&a[0]输出的是一个地址值。(数组的首地址)*(a+1)输出的是“2”即数组第二个元素的值pb的输出与&a[0]相同,都是地址。(数组的首地址)*pb输出的是“1”
3楼:匿名用户
a[0]是第1个元素
&a[0]第一个元素的地址
4楼:zoe_归天
0012ff6c 2 0012ff6c 1
&a[0]是取a[0]的地址
a[0]则是数组a 的第一个元素
5楼:冰蓝月零冻
&a[0]是a[0]的地址,输出以后是类似于0x0021df34这种格式的东西,表示内存地址
在c语言里面,&a[0]++和&a[0]+1分别表示什么意思?
6楼:
&a[0]++;是错误语句,编译都不会过。因为++是后++,在执行该语句时是不计算的,所以a[0]++是个表达式而不是值,显然用&取一个表达式的地址是非法操作!而如果是&++a[0];则是正确的,因为前++在执行&时已经计算过了:
就是先给a[0]+1,然后再取a[0]的地址。
&a[0]+1;是正确语句,因为&的优先级比+高,所以是先取a[0]的地址再给这个地址+一个元素所占字节数——就是说&a[0]+1是a[1]的地址。
7楼:匿名用户
&a[0]++表示程序运行时会对运行结果自加1
&a[0]+1表示程序运行时对结果加上1,如果改为2就会加上2
8楼:一辈子朋中
他们的结果一样,都是a[0]的地址加一
9楼:百度用户
a[0]表示数组a 的第一个元素,
&a[0]是取a[0]在内存中的地址
&a[0]++是将a[0]在内存中的地址向前移动一个单位.
理论上&a[0]+1和&a[0]++的执行效果是差不多的
10楼:匿名用户
不一样!
++的优先级比&高,&比+高!
所以&a[0]++是进行a[0]=a[0]+1之后,在取a[0]的地址
而&a[0]+1是先取a[0]的地址,然后将指向这个地址的指针(假设int *p;p=&a[0];)移动一个数据长度,即指向了a[1];
&a[0]++
就是&a[0]+1就是
11楼:匿名用户
这要看你要说的是
一维数组还是二维数组了,如果是一维,答案同atchoo,要补充的是,向前移动的是数组数据类型所占的内存空间,比如是int,就移动2个单元;如果是二维,
a[0]表示第一行首地址,&a[0]表示第一行第一列首地址,&a[0]++就是把第一行第一列的元素加1.
12楼:匿名用户
有人说a = a + 1;比a++;慢,但现在的编译器结果是一样的.
13楼:信培胜戊衣
编译错误如下,都是取得数组a的第二个元素的地址&a[0]++与&(a[0]++)等价:6,无法编译通过,不能取得地址;
表示a[0]++不是一个左值:
non-lvalue
inunary
`&'.cpp:
main。
而&a[0]+1与a+1和&a[1]是等价的
c语言 二维数组a【0】与a与a【0】【0】有什么区别?
14楼:匿名用户
数组在内存中是连续按行分布的,对于a[2][3]=,};它在内存中的分布式1,2,3,4,5,6;所以他等价于a[2][3]=;在c/c++中,数组名也即是数组首地址,这里加入a=0x1000;那么它的地址分就是:1000,1004,1008,100c,1010,1014;&a[0][0]也就取第一个元素的地址,即1000,a[0]是第一行1000,1004,1008的首地址,也是1000,也即是a元素的首地址;
int *b=a[0];
*b和a[0]是等的,是a数组第一行首地址;不同的是a[0]是只读的,*b是可读写的因为b是指针变量,你可以试试a[0][3],a[0][4],a[0][5]都能打印出来,别看a[2][3]以为这样越界了,其实越不越界是按地址来算的,地址上讲,&a[0][3]=a[1],所以完全没问题;按照地址计算上面打印的值就是4,5,6;同理用*(b+3),*(b+4),*(b+5)也是一样的道理;
a就是数组的首地址,a[0]是第一行第一个元素的首地址,也即是a的首地址,&a[0]是第一行的首地址,从数值上将,没问题,只是数据类型上不一样;
a[0][0]就是取第一行第一个元素的值,也即是1
15楼:匿名用户
a[0][0]是值,a[0]和a是地址
c++ int (*a)[20]与int *a[20]有什么区别吗求详解
16楼:匿名用户
int (*a)[20]是数组指针,int *a[20]是指针数组,区别详解
顾名思义就是存放指针的数组。整个a是一个数组,里面的元素都是指针,如果想把某个指针存入这个数组可以使用这样的方法:a[i]=p,其中p是一个普通指针,i是偏移址。
这个意思是把一个指针p存入第a数组中的第i+1个元素的位置。那么再看你的问题
1)a[0]是指针数组第一个元素,它是一个指针。
2)*a[0]是读取a[0]中的内容,前面说了a[0]是存在数组a的第一个元素,那么读取这个元素也就是读取存在a[0]的指针的内容,比如a[0]存放了指针p,而p=&x,而x=5;那么,读取指针p的时候会读出x的值就是5.
3)&a[0]意思是把a[0](一个指针)取地址,这个地址自然就是a。
c++中a
17楼:匿名用户
加上溢出的情况,你在想一下,a-b<0永远成立,a
18楼:匿名用户
逻辑上一样,但是后者多一个运算
19楼:匿名用户
这两个是相同的,没有区别
20楼:冷巴吧
在内存中存储是不同的,执行步骤也不同
c++里char a='0';和char a=0;有什么区别??
21楼:小傻
char a[100] = ;和char a = 区别如下:
第一个是 100个字节 全部初始化为\0 ,这个是先给出大小才初始化第二个是就一个字节 初始化为\0, 这个是赋值初始化 赋的值决定了大小
分配的内存地址空间也不一样,如下:
22楼:匿名用户
第一个是指字符a赋值字符型‘0’,第二个指字符a赋值ascii值为0的字符也就是空字符(空格)。
23楼:百度用户
c++里面初始化一个字符必须打上单引号 也就是类似于第一个 char a='x';。第2个是不正确的。
c++中a[p++]=0;与a[p]=0;p++;是不是一样的?
24楼:匿名用户
这两个是一样的。
含义是:先给a[p]赋初值0,然后p自加1,即指向下一个元素单元。
c++语言中a=a>=0?a:-a;什么意思
25楼:匿名用户
a=a>=0?a:-a;
a等于 a>=0?a:-a; 它的意思就是如果a>=0成立,取a 也就是a=a ,如果不成立去-a 那么a=-a;
这行命令的用处就是 给a取绝对值
26楼:匿名用户
和变量优先级有关系
在c++里自增运算符的优先级是2 减法运算符的优先级是4再加上表达式是反向解析的 于是-3的操作会先放在栈里碰到++运算符先做++的运算 然后-3才会出栈所以这个表达式在运算的时候的顺序应该是
1.a=a+1
2.a=a-3;
另外,站长团上有产品**,便宜***
27楼:
用数学来给你解释,其功能相当于下面的式子。
a=|a| //将a取绝对值后,再赋予a。
28楼:匿名用户
这个很简单 就是让a取得值不能为负数
公式解释 给a附一个值 如果这个值大于等于0 就取a 如果小于0就取a相反数-a 于是负数变正数
29楼:沧海雄风
a=a>=0?a:-a 如果 a>=0 则 返回 a 那么 a=a
如果a<0 则返回-a 那么 a= -a;
30楼:丶
a>=0吗、真 a取a的值,假a取-a
31楼:匿名用户
a>=0,把a的值赋给a
a<0,把-a的值赋给a
32楼:颖儿
就是当a>=0的时候则a=a,否则a=-a!
C++中delete和delete的区别
1楼 du知道君 你是不是问 delete 和 delete 的区别 一个是释放单个物体 比如 class a a p new a 一个是释放物体数组 a p new a 50 delete a c 中delete和delete的区别 2楼 育知同创教育 delete or delete 问题没说清...
C++中delete和delete的区别
1楼 千锋教育 主要差别是 是否调用析构函数 delete data 会自动调用data数组每个元素的析构函数 delete data则不会 2楼 匿名用户 没区别!!!你确定你问题问的对? c 中delete和delete的区别 3楼 育知同创教育 delete or delete 问题没说清楚啊...