从华为的一道面试反映出自己的基础知识的不扎实
2005-03-09 23:40
375 查看
char **p, a[16][8]; 问:p=a是否会导致程序在以后出现问题?为什么?
当开始看这道题的时候认为是正确的,当时我是这样想的:a[16][8]是个二维数组,那么a[16]不就是数组的一级指针,那么a就是数组的二级指针.这样p=a就理所当然了.但是我错了,因为基础的不扎实我忽略了二维数组的存放方式,其实二维数组在内存中是以一维数组的形式存放的.a其实就是个简单的一级指针
为了证实我写了下面的简单的程序测试了一下
void Test(char **p);
int main(void)
{
char a[10][8];
void Test(a);
return 0;
}
void Test(char **p)
{
}
编译结果是'Test' : illegal use of type 'void'
C:/Documents and Settings/libing/桌面/sasa/sa.cpp(8) : error C2440: 'initializing' : cannot convert from 'char [10][8]' to 'int'
This conversion requires a reinterpret_cast, a C-style cast or function-style cast
Error executing cl.exe.
看来在进一步学习之前,基础的学习还是不能放松的
当开始看这道题的时候认为是正确的,当时我是这样想的:a[16][8]是个二维数组,那么a[16]不就是数组的一级指针,那么a就是数组的二级指针.这样p=a就理所当然了.但是我错了,因为基础的不扎实我忽略了二维数组的存放方式,其实二维数组在内存中是以一维数组的形式存放的.a其实就是个简单的一级指针
为了证实我写了下面的简单的程序测试了一下
void Test(char **p);
int main(void)
{
char a[10][8];
void Test(a);
return 0;
}
void Test(char **p)
{
}
编译结果是'Test' : illegal use of type 'void'
C:/Documents and Settings/libing/桌面/sasa/sa.cpp(8) : error C2440: 'initializing' : cannot convert from 'char [10][8]' to 'int'
This conversion requires a reinterpret_cast, a C-style cast or function-style cast
Error executing cl.exe.
看来在进一步学习之前,基础的学习还是不能放松的
相关文章推荐
- 基础知识很扎实 - 但是面试就是做不出来, 怎么办?
- android开发之java的一些基础知识详解,java编程语法,扎实自己的android基本功
- 基础知识很扎实 - 但是面试就是做不出来, 怎么办? (长, 慎入)
- 基础知识很扎实 - 但是面试就是做不出来, 怎么办? (长, 慎入)
- 华为面试的一道题目 真的是佩服自己好菜,时间到了才做出来
- 基础知识很扎实 - 但是面试就是做不出来, 怎么办? (长, 慎入)
- [置顶] android开发之java的一些基础知识详解,java编程语法,扎实自己的android基本功
- 基础知识很扎实 - 但是面试就是做不出来, 怎么办?
- 面试基础知识点
- java面试 --之 java概述与基础知识 (2)
- 华为vlan基础知识随记备忘
- 精华 | 机器学习岗面试,这些是基础!(ML,DL,SL相关知识整理)
- 基础知识如何扎实都不为过
- JavaScript 基础知识 被自己遗忘的
- 准备Java面试之——Java SE基础知识解答(一)
- 数据库基础知识面试必备
- Elasticsearch学习整理(1):ES面试基础知识要点
- [Java面试三]JavaWeb基础知识总结.
- 基础知识复习与巩固(一):面试体会