zoukankan      html  css  js  c++  java
  • sizeof运算符

        本以为自己对sizeof掌握的还不错,结果还是会因为粗心大意而错误。

    1)sizeof不是函数,也不是运算符,它是一个类似宏定义的特殊关键字。sizeof后面跟类型(如int)需要加括号,跟变量不需要括号。

    2)int ival = 4; 计算sizeof(a)的时候,不论a的值是什么,都会被替换成sizeof(int),结果为4。

    3)如果是int ival = 4; sizeof(ival = 5); 呢? 语句执行结束后,ival的值为5。和sizeof(a)一样,被替换为sizeof(int)。需要注意,ival=5是不会被编译的。所以ival的值依旧为4。

    4)对函数调用sizeof。sizeof(fun()); 在编译阶段,sizeof的操作数会被函数的返回值所取代。也就是说计算的是函数返回值的大小。

    下面的代码,我大意算错了:空格害死粗心人啊,那个二维字符数组的大小也比较雷人,不留心机会计算错误。

    char a[] = "abcdf ";
    int b[20] = {3,4};
    char c[2][3] = {"aa ", "bb "};
    cout << sizeof(a) << endl;      //7,注意空格和'\0'
    cout << sizeof(b) << endl;	//20*4
    cout << sizeof(c) << endl;	//6
  • 相关阅读:
    java字符串实现正序和倒序输出
    暑假前挑战赛1—— A,B题解
    深搜
    poj 1200 Crazy Search
    poj 1840 Eqs (hash)
    Choose the best route
    一个人的旅行
    畅通工程续
    最短路基础算法
    完全背包问题
  • 原文地址:https://www.cnblogs.com/younes/p/1753441.html
Copyright © 2011-2022 走看看