zoukankan      html  css  js  c++  java
  • sizeof的用法

    同学让我看了一道题:

    int getsize(char p[100]="hello")
    {
     return sizeof(p);
    }
    int main(int argc, char* argv[])
    {
     char a[200]="hello!";
     cout<<sizeof(a)<<endl<<getsize("OK")<<endl;
     return 0;
    }
    第一个返回200,第二个却返回4,sizeof(a)返回数组的大小,而第二个实际上是指针变量的大小,怎么回事呢?
    在网上看到强人分析的MSDN才知道原因:
    sizeof操作的是一个结构体或者变量时,返回值为它的实际大小,这个实际大小可能包括为了字节对齐插入的多余字节。
    第二句:如果操作的是一个静态大小的数组,返回整个数组的大小
    第三句:sizeof操作符不能返回动态开辟的数组或形参数组的大小。
    如果操作数是函数中的数组形参或函数类型的形参,sizeof给出其指针的大小,所以是4 
    
    

  • 相关阅读:
    945.使数组唯一的最小增量
    用两个栈实现队列
    MySQL的约束
    数据库的设计
    约束
    DQL查询
    数据库的基本概念
    SQL基础语法
    MySQL基础
    java的注解和反射
  • 原文地址:https://www.cnblogs.com/xiangshancuizhu/p/1985270.html
Copyright © 2011-2022 走看看