都说数组名为首元素地址,那么数组名就是一个指针了,那为什么在main函数中用sizeof得到的是整个数组的大小,在其他的自定义函数中,经过数组传参,得到首元素地址后,用sizeof得到的就是首元素大小,两者不都是首元素地址,不都是指针吗?
问题是通常对象主动调用比如 .
, ->
, =
, ++
, 数组都不能调用, 但sizeof()
运算符除外, 你再思考下, 指针是否可以用前面的大部分运算符, 大概能明白, 这两者天差地别.
主程序之所以能得到是编译器去计算的,sizeof 不是函数,是运算符。
函数内参数就不同了,它是谁传进来的,这个运行了才知道,编译器就无能为力了了,就退化为单个元素的指针。
【相关推荐】