标签:os ar strong for sp 代码 on c size
两题都是看代码,然后找出代码中的错误,并作出解释。
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是没有初始化就进行了输出。
题目太长,懒得打了。
注意点在于
char* localtime(char* filename){ …… char buffer[120]; …… return buffer; }
这只是注意点之一。
我失败了……
标签:os ar strong for sp 代码 on c size
原文地址:http://my.oschina.net/gongshang/blog/312408