数组定义如下:int a[10]={1,2,3,4,5,6,7,8,9,0};请输出数组a的首址和下标变量a[0]的地址,二者是否相等?

题目就是这样,求大神能够写出源程序,万分感谢。。

数组名就代表着数组的首地址,这里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%d\n",a);

printf("a[0]的地址为\t%d\n",&a[0]);

return 0;

}

运行结果为:

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-06-11
那肯定相等了
#include <stdio.h>
int main()
{
int a[10]={1,2,3,4,5,6,7,8,9,0};
printf("%d %d\n",a,&a[0]);
if(a==&a[0])
printf("二者相等\n");
else
printf("二者不等");
return 0;
}

数组定义如下:int a[10]={1,2,3,4,5,6,7,8,9,0};请输出数组a的首址和...
int main(){ int a[10]={1,2,3,4,5,6,7,8,9,0};printf("数组a的首地址为\\t%d\\n",a);printf("a[0]的地址为\\t%d\\n",&a[0]);return 0;} 运行结果为:

.若有数组“int a[10]={1,2,3,4,5,6,7,8,9};”,则数值最大和最小元 ...
很明显,这里的a[9]只有定义即分配了内存,而没有被初始化。这样a[9]的存储空间是一个不确定的数,但这个数一般来说并不是0,也不可能默认为0。如果这个数比1小,那a[9]应该是最小值,如果这个数比9大,那么a[9]应该是最大值。但因为a[9]并没有确定,所以无论a[9]是否最大值或最小值...

若有以下定义和语句: int a[10]={1,2,3,4,5,6,7,8,9,10},p=a; 则不...
即a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9],正好10个,没有a[10],所以a[10]就是不能表达这个数组元素。C、*a ---数组名a中保存的是数组的首地址,*是取单元中的值,*a就是取数组首地址中单元中a[0]的值。D、a[p-a] --- p指向的是数组a,因为p...

若有如下定义语句:int a[10]={1,2,3,4,5,6,7,8,9,10}则对数组正确引用的...
D,a[4]+4=5+4=9,再次引用a[9]=10(编译通过)

int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则不能表示a数组元素的表达式是...
因为数组的下标是从0开始的,也就是说a[0]=1,a[1]=2,a[2]=3,a[3]=4,a[5]=6,a[6]=7,a[7]=8,a[8]=9,a[9]=10。所以B不对;p 和 a 都是指向数组a说地址的指针,它们指向的都是a[0];a[p-a],因为p=a=a数组的首地址,所以 p-a =0,a[p-a]= a[0]。

int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则不能表示a数组元素的表达式是...
因为数组的下标是从0开始的,也就是说a[0]=1,a[1]=2,a[2]=3,a[3]=4,a[5]=6,a[6]=7,a[7]=8,a[8]=9,a[9]=10。所以B不对;p 和 a 都是指向数组a说地址的指针,它们指向的都是a[0];a[p-a],因为p=a=a数组的首地址,所以 p-a =0,a[p-a] = a[0]。

int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;以下不能表示a数组元素
这题应该选D A p指向a,那么*p就是a[0]C ++(后缀) 的优先级比 *(取值) 高 故先进行++ 然后再进行取值 p++ 就是 a[1]D *p-a 是 a[0]-a 值不确定

若有以下说明:int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则对数组元素地 ...
lvalue required as unary '&' operand B.a++ 也有问题 7 28 C:\\Untitled1.c [Error] lvalue required as increment operand C.&p 这个是表示 指针变量 p 的地址 此题正确答案 是 D a+1,其实 是 数组元素 a[1] 的地址,a[0] 的地址就是 a+0 就是 a ...

int a[10]={1,2,3,4,5,6,7,8,9,0},*p; p=a; printf("%x\\n",p); prin...
*n 这里 输出的也就是 0x194+sizeof(int)*9 注意,这里的194是16进制的。因为是0x输出。如果是sizeof(int) =4 也就是32\/64位系统,那么输出为 0x194+4*9=0x194+0x24=0x1B8 输出1b8 如果是sizeof(int) =2 也就是16位系统,那么输出为 0x194+2*9=0x194+0x12=0x1A6 输出1a6 ...

设有a数组,int a[10]={1,2,3,4,5,6,7,8,9,10}
\/\/#include "stdafx.h"\/\/vc++6.0加上这一行.#include "stdio.h"int main(void){ int a[]={1,2,3,4,5,6,7,8,9,10},m,n,ln,*p; ln=sizeof(a)\/sizeof(int); while(1){ printf("Input m & n(m,n>=0 m+n<=%d)...\\n",ln); scanf("%d%d",&m,...

相似回答