我来我网
https://5come5.cn
 
您尚未 登录  注册 | 菠菜 | 软件站 | 音乐站 | 邮箱1 | 邮箱2 | 风格选择 | 更多 » 
 

« 1 2» Pages: ( 1/2 total )
本页主题: C/C++程序基础知识——笔试或面试可能用得上 显示签名 | 打印 | 加为IE收藏 | 收藏主题 | 上一主题 | 下一主题

zhd32



性别: 帅哥 状态: 该用户目前不在线
等级: 版主
家族: YD一族
发贴: 619
威望: 0
浮云: 543
在线等级:
注册时间: 2006-04-22
最后登陆: 2009-06-22

5come5帮你背单词 [ oven /'Λvn/ n. 烤箱,炉灶 ]


C/C++程序基础知识——笔试或面试可能用得上

昨天班上有位GG问我一个程序“问题”
发现仿佛很多GG不知道某些东西
在这里写一些,知道的GG些不要B4哈
如有错误,欢迎指出


[ 此贴被zhd32在2007-11-04 20:15重新编辑 ]
本帖最近评分记录:
  • 浮云:15(震月) 赞
  • 顶端 Posted: 2007-11-04 19:47 | [楼 主]
    zhd32



    性别: 帅哥 状态: 该用户目前不在线
    等级: 版主
    家族: YD一族
    发贴: 619
    威望: 0
    浮云: 543
    在线等级:
    注册时间: 2006-04-22
    最后登陆: 2009-06-22

    5come5帮你背单词 [ cheek /ti:k/ n. 面颊,脸蛋 ]


    一:内存
    Copy code
    void
    foo(void) {
        char *str1 = "test1"; // test1 这个串位于哪个位置? Q1
        char str2[] = "test2";//test2 这个串位于哪个位置?  Q2

        *str1 = 'a'; //正确否?Why? Q3
        *str2 = 'b'; //正确否?Why? Q4
    }

    A1: test1 位于 文本区(.TEXT)
    A2: test2 位于 栈(堆 是 堆,栈 是 栈, 不要混淆)
    A3: 不正确,不能修改文本区的数据,Windows会引起Win32异常(访问冲突),Linux会引发segment fatal
    A4: 正确,test2 位于栈内,随便你咋修改
    PS:不能在栈内分配过大的空间,不然会栈溢出
    Copy code
    void
    foo() {
        int largearray[1000 * 1000]; //溢出
    }


    Copy code

    int largearray[1000 * 1000]; //不会溢出
    void
    foo() {
        //........   
    }



    另外一个
    Copy code
    typedef struct {
        int a;
        char b;
        float c;   
    }mystruct;

    sizeof(mystruct) = ?


    一般情况下为 4 + 4 + 4 = 12,字节对齐,感兴趣的GG自己上外网找下


    [ 此帖被zhd32在2007-11-07 11:18重新编辑 ]
    顶端 Posted: 2007-11-04 19:47 | [1 楼]
    luwen



    性别: 帅哥 状态: 该用户目前不在线
    头衔: 无我相
    等级: 人见人爱
    发贴: 4372
    威望: 0
    浮云: 1120
    在线等级:
    注册时间: 2006-09-14
    最后登陆: 2013-09-25

    5come5帮你背单词 [ flatter /'flætə/ vt. 奉承,阿谀,使愉快 ]


    先友情帮顶了哈
    顶端 Posted: 2007-11-04 19:50 | [2 楼]
    joezxd



    性别: 帅哥 状态: 该用户目前不在线
    头衔: 我的目标是太阳
    等级: 人见人爱
    家族: 绘里香榭
    发贴: 2226
    威望: 0
    浮云: 1112
    在线等级:
    注册时间: 2006-10-07
    最后登陆: 2019-01-07

    5come5帮你背单词 [ valve /vælv/ n. 阀,活门,真空管,电子管 ]


    我也想看哈  lz快点出啊
    顶端 Posted: 2007-11-04 19:57 | [3 楼]
    zhd32



    性别: 帅哥 状态: 该用户目前不在线
    等级: 版主
    家族: YD一族
    发贴: 619
    威望: 0
    浮云: 543
    在线等级:
    注册时间: 2006-04-22
    最后登陆: 2009-06-22

    5come5帮你背单词 [ pepper /'pepə/ n. 胡椒,辣椒 ]


    数组和指针

    数组和指针
    Copy code
    void
    foo1(int array1[100]) {
        int array2[100];
        int *array3 = array;

        sizeof(array1) = ??
        sizeof(array2) = ??
        sizeof(array3) = ??
       
    }

    虚参中的数组会退化为指针,现有大部分操作系统都为平坦内存模式(不知道名字正确不,反正不会再依靠 段地址 + 偏移地址 来寻址了),32位机,32位内存地址长度,So,sizeof(array1) = 4,sizeof(array2) = 400 = 100 * 4,
    sizeof(array3) = 4

    还有个
    Copy code
    int array1[1000 * 1000];
    int *array2;
    void
    foo() {
        array2 = array1;
        //loop1
        for(int i=0; i < 1000*1000; i++) {
            array1[i] = i;
        }
       
        //loop2
        for(int i=0; i < 1000*1000; i++) {
            array2[i] = i;
        }
    }

    loop2和loop1的效率哪个高???

    loop1的效率高,编译器可直接计算出 array1[i] 代表的数据的偏移地址
    a).array1的起始地址(编译时可知)  +  i * sizeof(int)
    而需要2步才能计算出 array2[i] 的偏移地址
    a).取 array2 的值(运行时才可知) V2
    b).V2  +  i * sizeof(int)




    [ 此贴被zhd32在2007-11-04 20:33重新编辑 ]
    顶端 Posted: 2007-11-04 20:08 | [4 楼]
    zhd32



    性别: 帅哥 状态: 该用户目前不在线
    等级: 版主
    家族: YD一族
    发贴: 619
    威望: 0
    浮云: 543
    在线等级:
    注册时间: 2006-04-22
    最后登陆: 2009-06-22

    5come5帮你背单词 [ toothpaste /'tu:θpeist/ n. 牙膏 ]


    占楼
    暂时想不到其他可以说的了
    想起了补上来


    [ 此贴被zhd32在2007-11-04 20:36重新编辑 ]
    顶端 Posted: 2007-11-04 20:08 | [5 楼]
    再不斩



    性别: 帅哥 状态: 该用户目前不在线
    等级: 鹤立鸡群
    发贴: 1414
    威望: 0
    浮云: 1413
    在线等级:
    注册时间: 2005-12-23
    最后登陆: 2009-04-26

    5come5帮你背单词 [ abnormal /æb'no:məl/ a. 反常的,变态的;不规则的 ]


    嗯,很好,第一个问题一向不注意。
    顶端 Posted: 2007-11-04 21:09 | [6 楼]
    mengji2006





    性别: 帅哥 状态: 该用户目前不在线
    等级: 栋梁之材
    发贴: 723
    威望: 0
    浮云: 1201
    在线等级:
    注册时间: 2006-11-25
    最后登陆: 2008-01-17

    5come5帮你背单词 [ model /'modl/ n. 模型,原型,模特儿,模范,榜样,样式 ]


    很不错,谢谢了哈
    顶端 Posted: 2007-11-04 22:08 | [7 楼]
    jie





    性别: 帅哥 状态: 该用户目前不在线
    等级: 栋梁之材
    发贴: 983
    威望: 0
    浮云: 1105
    在线等级:
    注册时间: 2005-10-09
    最后登陆: 2008-06-23

    5come5帮你背单词 [ thunder /'θΛndə/ n. 雷,雷声;vi. 打雷,轰隆地响 ]


    很好,貌似笔试面试几乎都答错了。
    顶端 Posted: 2007-11-06 21:52 | [8 楼]
    夜空



    性别: 帅哥 状态: 该用户目前不在线
    等级: 初出茅庐
    发贴: 84
    威望: 0
    浮云: 1122
    在线等级:
    注册时间: 2007-10-23
    最后登陆: 2008-06-27

    5come5帮你背单词 [ subdivide /'sΛbdi'vaid/ v. 再分,细分 ]


    哇。。这些题都不太好答啊。。绝对不算是C/C++的基础了。。。
    顶端 Posted: 2007-11-07 00:37 | [9 楼]
    jon986cn





    性别: 保密 状态: 该用户目前不在线
    等级: 品行端正
    发贴: 486
    威望: 0
    浮云: 1143
    在线等级:
    注册时间: 2005-10-06
    最后登陆: 2008-06-21

    5come5帮你背单词 [ share //ə/ vt. 分享,分给,分担;n. 部分,一份,股份,股,分担,均摊 ]


    恩,挺好的,谢谢了
    顶端 Posted: 2007-11-09 11:32 | [10 楼]
    endi



    性别: 帅哥 状态: 该用户目前不在线
    等级: 品行端正
    发贴: 440
    威望: 0
    浮云: 1272
    在线等级:
    注册时间: 2007-10-13
    最后登陆: 2013-06-03

    5come5帮你背单词 [ build /bild/ vt. 建造,建筑,建设,建立;vi. 增大,增强,加强 ]


    不错,谢谢~~~~
    顶端 Posted: 2007-11-13 12:05 | [11 楼]
    k哥



    性别: 帅哥 状态: 该用户目前不在线
    等级: 鹤立鸡群
    家族: 物电学子快快快
    发贴: 1109
    威望: 0
    浮云: 1109
    在线等级:
    注册时间: 2007-09-07
    最后登陆: 2010-09-21

    5come5帮你背单词 [ litre /'li:tə/ n. 升 ]


    先谢谢了哈
    顶端 Posted: 2007-11-13 19:23 | [12 楼]
    yinx



    性别: 帅哥 状态: 该用户目前不在线
    等级: 人见人爱
    家族: 丢丢
    发贴: 2333
    威望: 0
    浮云: 1260
    在线等级:
    注册时间: 2006-09-15
    最后登陆: 2009-05-11

    5come5帮你背单词 [ when /wen/ ad. 什么时候,在…的时候;conj.当…时,其时,然后,可是,然而;pron. 什么时候 ]


    Quote:
    引用第1楼zhd32于2007-11-04 19:47发表的  :
    一:内存
    [code]
    void
    foo(void) {
        char *str1 = "test1"; // test1 这个串位于哪个位置? Q1
    .......


    支持~~~,这些问题真的很重要而又很容易被忽略

    不过有一个小问题,“test1“这个字串是在.data(已初始化的数据段)里的。
    顶端 Posted: 2007-11-13 20:38 | [13 楼]
    zhd32



    性别: 帅哥 状态: 该用户目前不在线
    等级: 版主
    家族: YD一族
    发贴: 619
    威望: 0
    浮云: 543
    在线等级:
    注册时间: 2006-04-22
    最后登陆: 2009-06-22

    5come5帮你背单词 [ music /'mju:zik/ n. 音乐,乐曲 ]


    Quote:
    引用第13楼yinx于2007-11-13 20:38发表的  :


    支持~~~,这些问题真的很重要而又很容易被忽略

    不过有一个小问题,“test1“这个字串是在.data(已初始化的数据段)里的。

    O??
    反正我记得是在静态数据区的,因为已初始化的数据段里的数据可以被修改~~
    洗完澡查一下
    顶端 Posted: 2007-11-13 23:07 | [14 楼]
    « 1 2» Pages: ( 1/2 total )
    我来我网·5come5 Forum » 程序员之家

    Total 0.012084(s) query 5, Time now is:11-22 22:40, Gzip enabled
    Powered by PHPWind v5.3, Localized by 5come5 Tech Team, 黔ICP备16009856号