您的位置:首页 > 其它

腾讯2016研发工程师笔试题(一)笔记

2016-09-01 16:43 281 查看
2.请找出下面程序中有哪些错误:

const在后,指针不能变;

const* ,指针指向为常量;

*const ,指针本身为常量。

(2)

(1)const int*p1:表示不能通过指针p1修改它指向的内存单元的值,但是p1本身可修改。

(2)int const*p2=&i:与p1相同,即不能修改p2指向的内存单元的值,但是可以修改p2使其指向其它的内存单元。这里p2指向了整型变量i

(3)p2=&j:修改p2,使其指向整型变量 j ,由(2)可知(3)没错。

(4)int *constp3=&i:p3本身是指向整型变量的常指针,即p3初始化后不能再指向其它的内存单元,但是可以修改p3指向的内存单元的值。这里p3指向了整型变量i。

(5)*p3=20:通过p3将变量i的值修改为2,由(4)可知(5)没错。

(6)*p2=30:通过p2修改它所指向的内存单元的值,由(2)可知(6)错误。

(7)p3=&j:修改p3,使其指向j,由(4)可知(7)错误

(3)遇到const修饰的时候,从右向左读 最容易区分

如: const int *p1;//则const 修饰的是int *p1 说明这个变量是不能变的,就是p1所指向的变量是常量变量

int const *p2 = &i; //const修饰的是  *p2(表示所指向的变量)  说明p2所指的变量不能改变,也就是 指向常量变量。

int *const p3 = &i;  //const修饰的是  p3  说明指针变量的值不能改变,也就是不能让p3指针再指向其他

3.以下代码输出什么____.

&a表示一个指向大小为5数组的指针,那么&a+1就是表示一个指向大小为5的下一个数组的指针,也就是数组a最后一个元素的下一个位置,那么int*p=(int*)(&a+1)进行强制类型转换,将指向数组的指针转换为指向第二个数组中首元素的指针,所以p-1则是指向第一个数组中最后一个元素的指针,所以输出是5

6.linux下,指定文件file1为所有用户可读,可写,可执行,执行命令:___1__。修改file1的拥有者为test,拥有组为user,执行命令:___2__。

答案:chmod
777,chown test

解析:

sizeof(testArray[0]) 是 testArray[0]的大小 4;

所以 sizeof(testArray)/sizeof(testArray[0]) = 8
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐