数码视讯2015校招笔试 C++ 简单总结

两题都是看代码,然后找出代码中的错误,并作出解释。

题目一

<!-- lang: cpp -->
int array[] = {1,2,3,4,5,6}; 

#define elements (sizeof(array)/sizeof(array[0]))

int main()
{	
	    int d = -1, x;
    	
        for(int i = d; i< elements-1 ; i++)
		x = array[1];
        cout<< x;
}

**误解:**本文误以为 #define 那部分出错了。以为elements不能求出数组的长度,得到的结果会是1。这里存在一个误解,就是sizeof array的时候,到底返回的是数组的整体大小还是头指针的大小。

正确答案: 能做出答案的,都有火眼金睛。错误在于循环的时候,i<elements-1 ,返回值将为false,不执行循环体内的赋值操作。究其原因,sizeof操作符的返回值是size_t, 一般是unsigned int类型。所以,最后x是没有初始化就进行了输出。

题目二

题目太长,懒得打了。 注意点在于

<!-- lang: cpp -->
char* localtime(char* filename){
    ……
    char buffer[120];
    ……
    return buffer;
}

这只是注意点之一。

我失败了……

转载于:https://my.oschina.net/gongshang/blog/312408

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值