趋势科技(中国)有限公司南京分公司
数据来源天眼查
1000人以上 | 计算机软件 | 外资·合资 | 南京
查看全部54条面经 面试经验共54条面经

邵帅

共面试1轮 未获得工作

【笔经】趋势科技笔试题
以下的代码可放在VC++6.0里面运行。题目是要求输出:TrendMicroSoftUSCN然后要求修改程序,使程序能输出以上结果.代码如下:

    #include 

    #include 

    using namespace std;int main(int argc,char * argv[]){string strArr1[]={ "Trend ", "Micro ", "soft "};string *p=new string[2];p[0]= "US ";p[1]= "CN ";cout     我在VC里面调过了,sizeof(strArr1)=48.

    sizeof(string)=16.

    sizeof(p)=4(指针变量)我不明白的是为什么sizeof(string)=16,以及string 好象是在C#里面的,怎么用到C++里面了.给出的答案是:for(i=0;i     ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++首先要明确sizeof 不是函数,也不是一元运算符,他是个类似宏定义的特殊关键字,sizeof();括号内在编译过程中是不被编译的,而是被替代类型,如 int a=8;sizeof(a);在编译过程中,它不管a的值是什么,只是被替换成类型 sizeof(int); 结果为4.如果sizeof(a=6);呢,也是一样的转换成a的类型,但是要注意因为a=6是不被编译的,所以执行完sizeof(a=6);a的值还是8,是不变的!

    记住以下几个结论:

    1.unsigned影响的只是最高位bit的意义(正负),数据长度不会被改变的。所以sizeof(unsigned int) == sizeof(int);2.自定义类型的sizeof取值等同于它的类型原形。如typedef short WORD;sizeof(short) == sizeof(WORD)。

    3.对函数使用sizeof,在编译阶段会被函数返回值的类型取代。如:int f1(){return 0;};cout     6.字符串的sizeof和strlen,用例子说明:

    char a[] = "abcdef ";char b[20] = "abcdef ";string s = "abcdef ";cout     a[1] = '\0 ';cout     指针p指向数组,则*p就是指向数组中的成员了,成员的类型是什么,string型,ok那么sizeof(*p)为16,乘以2才是整个数组的大小。
2013-08-17 22:30:26 1 0

方磊 、 赞过

回答或评论0条

登录后,参与评论

评论不能为空

确认删除?

x

你新收到1封趋势科技(中国)有限公司南京分公司的职位邀请信