zoukankan      html  css  js  c++  java
  • c语言之sizeof的细节

    关于sizeof,我们知道sizeof并不是一个函数,尽管通常我们会用sizeof()用法(这是c语言的坑),在此关于sizeof的一些关键不被认知的进行一下总结:

     1 # include "iostream"
     2 int array[]{23, 34, 12, 17, 204, 99, 16};
     3 #define TOTAL_ele (sizeof(array)/sizeof(array[0]))
     4 int main()
     5 {
     6     using namespace std;
     7     int d = -1;
     8     cout << " the return value of array is:" << sizeof(array) << endl;
     9     cout << "the return value of array[0] is:" << sizeof(array[0]) << endl;
    10     if (d < TOTAL_ele - 2)
    11         cout << "无fuck说" << endl;
    12     system("pause");
    13     return 0;
    14 
    15 }

    上面一段c++代码,注意几点:

    sizeof(数组名),返回的是:元素个数×类型字节数(比如这里是28),尽管我们知道数组名表示一个地址。

    sizeof()的返回值,准确的说叫做测量值,是个无符号数,即unsigned 类型,因此上述 if(d<TOTAL_ele-2)并不为逻辑真,因为左右类型不匹配,实际上,会将左侧的int型的d= -1转化成一个4个字节的无符号数-1。

    因此在此强调一个概念:C语言写程序的时候一定要注意类型的匹配

  • 相关阅读:
    Pycharm5注册方式
    五、监听共享目录文件
    三、python webservice
    二、Python安装扩展库
    一、Python安装下载
    test
    拖延
    要乐观对待生活
    乞讨者
    不要总是指责和埋怨
  • 原文地址:https://www.cnblogs.com/shaonianpi/p/9710735.html
Copyright © 2011-2022 走看看