内存题目(自总)

内存题目(自总)

ID:47489706

大小:50.29 KB

页数:22页

时间:2020-01-12

内存题目(自总)_第1页
内存题目(自总)_第2页
内存题目(自总)_第3页
内存题目(自总)_第4页
内存题目(自总)_第5页
资源描述:

《内存题目(自总)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、3a[3][4]哪个不能表示a[1][1]:*(&a[0][0])*(*(a+1)+1)*(&a[1]+1)*(&a[0][0]+4)4for(inti...)for(intj...)printf(i,j);printf(j)会出现什么问题32位机上根据下面的代码,问哪些说法是正确的?signedchara=0xe0;unsignedintb=a;unsignedcharc=a;A.a>0&&c>0为真B.a==c为真C.b的十六进制表示是:0xffffffe0D.上面都不对分析:坑爹丫,有木有!10个人9个这个恐怕都不敢确定!(敢肯定的要么是高手,要么就是错的!)

2、Bme认为是错的,一个uchar和一个schar比较,真的就是一个字节在比较吗?Cme认为是对的,将一个schar赋值给一个uint,要不要符号扩展呢?是绝对会还是可能会呢?细节到底是神马?O__O"…A貌似比较确定,肯定是错的,肯定?揭露真相:A确实是错的,B也是错的,C是对的,所以D也是错的。理由?A错是因为,a是负数,c是正数,即使跟0比较要转换到int(后面暂不区分转换和类型提升,总之就是类型变了),也是一负一正,所以A错。B呢?是说一正一负不会相等,难道是因为这吗?难道不是吗?首先说a和c的二进制表示一模一样,都是0xe0,那么比较就不相等?!是的,比较的

3、时候全部转换为int,所以呢,a还是作为一个负数存在,c作为一个正数存在,于是就不相等了,所以B错。C肿么就对了?a是一个schar,赋值给uint的b,前若干个字节不是补0吗?首先schar转换为int,然后int转换成uint,所以最初是符号扩展,然后一个int赋值给了uint,Ccorrect!me曾经要写一篇关于c的类型以及指针的blog,不过最后没有完成,不过还是可以参考一下的。下面哪些选项能编译通过?inti;chara[10;stringf();stringg(string&str);A.if(!!i){f();}B.g(f());C.a=a+1;D.

4、g("abc");分析:再次坑爹有木有!(其实me比较确信这道题,是坑别人的爹,O__O"…)A绝对是正确的,C绝对是错的,D基本肯定是错的,那B呢?要么error,要嚒warning!如果是warning但是没有error,这算神马情况呢?B确实不应该选,至少语义上不该选!f()返回一个临时量,然后传给g函数,而g的参数是非const引用,是不能引用临时量的!为嘛,如果g中修改了传进来的string,那么会是怎么一回事呢?修改了一个临时量的值?那这意义何在呢?但是如果将g的原型修改为stringg(conststring&);就是可以的,为么可以?访问(只读)临时

5、量就是正确的?那必须的,比如u可能想知道a+b的结果是多少,然后输出!a+b的结果就是一个临时量。如果说修改a+b的结果,这是神马个逻辑?!真相:C错是以为a是一个地址常量,不可能再被赋值。D为嘛错呢?"abc"的类型可是constchar*呢,是个常量指针呢!(可以用来初始化string。)inta[10];问下面哪些不可以表示a[1]的地址?A.a+sizeof(int)B.&a[0]+1C.(int*)&a+1D.(int*)((char*)&a+sizeof(int))分析:奇葩丫!(其实并不奇葩!)腾讯的题目有时候出的的确有水平丫,虽然出的太有水平了分就考

6、不高了。me想哭丫,想来想去还是在A和B中选错了,%>_<%,当时还特意提醒自己来着的,O__O"…c++中的sort如何用来排序a数组呢?sort(a,a+N);或是sort(a,a+sizeof(a)/sizeof(a[0]));当时懵了,实际上a+1,就是a[1]的地址呢!a的类型是int[10],a+1和一个int*类型的+1效果一样,都表示偏移1个元素,所以A不能表示。(选错误的!)C能表示是因为取了首地址作为一个int*然后+1,就是偏移一个元素,所以不选。B肿么说呢,me一直一位&a[0]是一个普普通通的地址,+1就是+1个字节,实际上是+1个元素!D

7、也能表示?将a的首地址转换为一个char*指针,这个时候+1是偏移一个char,也就是一个字节,实际上应该偏移sizeof(int)个字节才能到达a[1],所以D可以表示(不选)。不多说了。(如果是二维数组是不是会更懵呢,O__O"…)问下面的数据都存放在哪些存储区?intmain(){char*p="hello,world";return0;}A....B....C.栈和常量区D.栈和堆分析:"hello,world"是常量,赶脚应该就是C吧,应该大家感觉都一样。这里不涉及什么堆的事。假设在一个32位littleendian的机器上运行下面的程序,结果是多少?

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。