刷题也有几天了,把自己刷题过程的错题整理出来,以便以后不会再犯同样的错误~~
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,回车就会自动截止~~(虽然被截止,但我依然爱你~~
题外话)
好了,先整理这么多~~