c易错题(一)

来源:互联网 发布:数据库实例是什么意思 编辑:程序博客网 时间:2024/05/17 09:34

刷题也有几天了,把自己刷题过程的错题整理出来,以便以后不会再犯同样的错误~~

1.已知int a[3][4];则下列可以表示a[1][2]元素的值的是()

           A.*(*(a+1)+2)

           B.*(a+1+2)

          C.(&a[0]+1)[2]

          D.*(a[0]+1)

这道题看着不是很难,差不多可以选出A,但是却不一定理解下边的选项为啥错。下边我来一个一个分析:



这下应该理解了吧~~

2.声明一个指向含有10个元素的数组的指针,其中每个元素是一个函数指针,该函数的返回值是int,参数是int*,则

这个数组指针的声明的原型是:int (*(*p)[10])(int *);

分析:这是一个指向10个元素的数组的指针,每个元素是函数指针,int (*)(int *)  (*p)[10];这样或许就能好点了吧。

3.链表和数组的区别:链表是一块不连续的动态空间,长度可变;链表需要按顺序检索结点,效率低;但是可以快速

插入和删除;不会越界~~数组是一块连续的空间,声明时长度需要确定;但是访问速度快;会有越界~

4.给出:char str[10];

             cin>>str;

如果输入“i love you”,输出str时,会输出什么??

只会输出“i”,原因是cin跟scanf有点类似,都是遇到空格,tab,回车就会自动截止~~(虽然被截止,但我依然爱你~~

题外话)

好了,先整理这么多~~

0 0