别见笑, 一个基础 C/C++ 问题

老兵新手

新手上路
注册
2003-10-24
消息
198
荣誉分数
0
声望点数
0
const 的问题:

const TYPE * func(); //A const pointer
TYPE * const func(); //A pointer to a const func()
const TYPE * const func(); // const pointer points to a const func()
TYPE * func() const;

这第四个怎么解释? 是针对整个涵数体?
 
我对你的注释不能同意。
const 实际上是左修饰的,如果再最左边,则修饰紧临右边的。
所以:const TYPE * FUNC();应该是函数返回的指针的指向的内容不可修改。
TYPE * const func(); 函数返回一个const 指针,类型为type
const TYPE * const func(); 前两个的合
TYPE * func() const; 本成员函数不可修改类的成员
 
今天我有个面试:问structure 和union的区别
例如:structure sta
{ int a;
int b;
};

union unb
{
structure sta c;
int d;
}e;
e.c.a=1;
how about e.d?
 
1?
in mem.
e = 00000001xxxxxxx
e.c= -------a------b
e.d= -------d
 
e.d = e.c.a

Linux龙,你不会是来我们公司Interview的吧。:blink: :smokin:
 
最初由 dragonLinux 发布
我对你的注释不能同意。
const 实际上是左修饰的,如果再最左边,则修饰紧临右边的。
所以:const TYPE * FUNC();应该是函数返回的指针的指向的内容不可修改。
TYPE * const func(); 函数返回一个const 指针,类型为type
const TYPE * const func(); 前两个的合
TYPE * func() const; 本成员函数不可修改类的成员

谢谢. 看来我把 const pointer 和 pointer to const value 刚好整反了.
 
最初由 sable93 发布
1?
in mem.
e = 00000001xxxxxxx
e.c= -------a------b
e.d= -------d

union 在各种 C compiler 上都是左对齐的吗? 是C标准吗?
 
union 里面的MEMBER的起始地址一样.
 
最初由 shusheng 发布
e.d = e.c.a

Linux龙,你不会是来我们公司Interview的吧。:blink: :smokin:
你在哪个公司啊?如果是你的公司,不知道你是否面试过我?我还在等消息呢。也是个我梦寐以求的公司。
不过,我估计是,因为人事部的经理和软件经理都说是他们问过很多有C语言经验的人,但是他们居然答不上来,所以我想他们实际上称不上有经验,这是基本C语言常识。
我另外想说的就是,其实面试对计算机语言的技能要求并不高,至少我还没有碰到过难的在ottawa和kanata,说实话国内的比这里面试难多了,他们主要注重经验,和你在这行业的能力。我面试了很多,但是我的英语还不行,我也倒霉,都要求与公司的客户打交到,好多都 是因为英语不行。
答案非常简单就是大家说的,确实是地址都从低地址开始。
 
看大家兴趣正浓,再来一题。
这是我去一家电信设备公司的问题,也不难。
问怎么样计算一个字节中的所有为1的位数有多少位?要求是性能第一,只有最快就行了。欢迎大家
 
c语言程序

Dearall:

resultlove(boy,girl)

{-

if(boy。有房()andboy。有车()

{-

boy。set(nothing);

returngirl。嫁给(boy);

}
if(girl。愿意等()

{-

while(!(boy。赚钱>100,000andgirl。感情>8

{-

for(day=1;day<=365;day++)

{-

if(day==情人节

if(boy。givegirl(玫瑰)

girl。感情++;

else

girl。感情--;

if(day==girl。生日)

if(boy。givegirl(玫瑰)

girl。感情++;

else

girl。感情--;

boy。拼命赚钱();

}

}

if(boy。有房()andboy。有车()

{-

boy。set(nothing);

returngirl。嫁给(boy);

}

年龄++;

girl。感情--;
 
最初由 dragonLinux 发布
看大家兴趣正浓,再来一题。
这是我去一家电信设备公司的问题,也不难。
问怎么样计算一个字节中的所有为1的位数有多少位?要求是性能第一,只有最快就行了。欢迎大家

Google 的电话 interview 时也给了类似的题. 我回答的是循环左移位或者右移位, 并 count them. 到现在我也不知道正确的答案是什么.
 
一个字节,只有256种可能,开一个数组是最快的了吧。
bits[0] = 0, bits[1] = 1, bits[2] = 1, bits[3] = 2, ...
 
最初由 老兵新手 发布


Google 的电话 interview 时也给了类似的题. 我回答的是循环左移位或者右移位, 并 count them. 到现在我也不知道正确的答案是什么.

你早说啊,真后悔没早说,这样兄弟们面试就会多一个机会。
我有两个答案:
 
后退
顶部