今天 给同学讲二级题,遇到一个问题。众所周知,数组名在C语言中表示数组首地址,但是如果对数组名进行取地址运算得到的地址 有代表什么?
于是 进行了这样的实验:
[code=C/C++][/code]
#include<stdio.h>
void main()
{
int a[3];
printf("%x\n%x\n",a,&a);
}
输出结果:
40fac4
40fac4
竟然 一样…………
然后继续实验
[code=C/C++][/code]
void main()
{
char a[3];
scanf("%c",&a);
printf("%c\n",*a);
}
void main()
{
char a[3];
scanf("%c",a);
printf("%c\n",*a);
}
以上程序结果都为:
输入 1
输出 1
于是 不明白了,为什么对数组名取地址的结果还是源地址……
本人 菜鸟 求高手扔砖头……
于是 进行了这样的实验:
[code=C/C++][/code]
#include<stdio.h>
void main()
{
int a[3];
printf("%x\n%x\n",a,&a);
}
输出结果:
40fac4
40fac4
竟然 一样…………
然后继续实验
[code=C/C++][/code]
void main()
{
char a[3];
scanf("%c",&a);
printf("%c\n",*a);
}
void main()
{
char a[3];
scanf("%c",a);
printf("%c\n",*a);
}
以上程序结果都为:
输入 1
输出 1
于是 不明白了,为什么对数组名取地址的结果还是源地址……
本人 菜鸟 求高手扔砖头……