用了很多年c了,还有基本概念搞不清楚,大家帮助
snowx 2004-07-15 02:59:25 学的不扎实,让大家费心了,我把几个疑问提出来:
1.
char str[] = "work hard";
str[]是否表示一个数组,str应当就是这个数组的首地址,如此的赋值代表什么呢?
为什么sizeof(str)能够得到10?而用指针,char *p = "work hard"; sizeof(p)应当是4(视机器而定)。
这里不指定数组str的维数,编译器是如何理解的呢?
2.
这次是这样
void Function(char d[100])
{
sizeof(d) = 4
为什么这里又是4了?
}
数组和指针,很多场合可以混合使用,为什么有时候作为函数参数传递,编译却通不过呢?
以前遇到问题,不喜欢深究,所以养成了不求甚解的一些不良习惯。
现在发现不深究一些东西,无法弄清楚本质的含义和用法。