一道sizeof面试题的收获
2006-07-11 10:39
239 查看
今天做了一道面试题目,收获很多。请看下面一题:
static char a[ 3 ][ 10 ] ;
int main( void )
{
char *p = a[ 0 ];
cout << sizeof( a[ 0 ] )<< endl;
cout << sizeof( p ) << endl;
return 0;
}
输出的结果是什么?
我开始以为a[ 0 ]是一个地址,所以两句语句是相同的结果,
即
4
4
但是通过实际编译测试后,发现结果居然是
10
4
呵呵,原来编译器在编译的时候就确定了a是数组,按照数组的列来确定a[ 0 ]的大小了。解释一下a[0],它是一个数字的行地址。
static char a[ 3 ][ 10 ] ;
int main( void )
{
char *p = a[ 0 ];
cout << sizeof( a[ 0 ] )<< endl;
cout << sizeof( p ) << endl;
return 0;
}
输出的结果是什么?
我开始以为a[ 0 ]是一个地址,所以两句语句是相同的结果,
即
4
4
但是通过实际编译测试后,发现结果居然是
10
4
呵呵,原来编译器在编译的时候就确定了a是数组,按照数组的列来确定a[ 0 ]的大小了。解释一下a[0],它是一个数字的行地址。
相关文章推荐
- C++ sizeof() 和一道面试题
- 华为的另一道面试题,有关union的sizeof()的问题
- C++ sizeof() 和一道面试题
- C++ sizeof() 和一道面试题
- 考察继承、虚函数、sizeof、构造函数析构函数的一道面试题
- 关于sizeof的一道面试题
- 一道面试题引发的有关随机数的思考(4)
- 一道苹果公司的面试题
- [面试珠玑]一道关于C++虚函数和多继承的面试题
- 一道变态的Javascript面试题
- 一道公司的面试题
- 一道面试题引发的有关随机数的思考(8)
- 关于一道简单的Java 基础面试题的剖析: short s1=1;s1 = s1 +1会报错吗?
- 一道面试题
- 一道经典的SQL面试题
- 一道常被人轻视的前端JS面试题
- 忆一道百度面试题
- 另一道看上去很吓人的面试题:如何交换a和b两个整数的值,不用额外空间 (Rev. 2)
- 一道看上去很吓人的算法面试题:如何对n个数进行排序,要求时间复杂度O(n),空间复杂度O(1)
- 剑指offer--面试题14--收获