字符数组的起始地址让我很困惑……
数组名为c,占6个字节。数组名c代表地址2000。可以用下面的输出语句得到数组的起始地址。printf("%o",c); /*用八进制形式输出数组c的起始地址*/
输出数组c的起始地址2000。可知数组名c代表数组起始地址。(此问题来源于谭浩强《C程序设计》(第三版)P145)
****************************
c数组
2000 → C
2001 → h
2002 → i
2003 → n
2004 → a
2005 → \n
****************************
根据这段内容,自己写了这么一个程序:
#include <stdio.h>
void main()
{
char c[6];
scanf("%s",c);
printf("%o\n",c);
}
其结果是:无论输入什么字符,得到的结果都是“177722”
自己实在是不明白:这里面的起始地址到底是指是什么?难道说,每个初始的数组地址都是177722吗?
如果是这样,起始地址2000就是给数组地址初始化的意思?
%o——用八进制形式输出,就能得到需要的地址??
自己对“地址”这部分太模糊了!!
[[it] 本帖最后由 YuriGagarin 于 2008-7-28 11:29 编辑 [/it]]