现在的位置: 首页 > 综合 > 正文

数组和指针 计算内存容量

2014年07月18日 ⁄ 综合 ⁄ 共 573字 ⁄ 字号 评论关闭

 

用运算符sizeof可以计算出数组的容量(字节数)。下例中,sizeof(a)的值是12(注意别忘了/0)。指针p指向a,但是sizeof(p)的值却是4。这是因为sizeof(p)得到的是一个指针变量的字节数,相当于sizeof(char*),而不是p所指的内存容量。C++/C语言没有办法知道指针所指的内存容量,除非在申请内存时记住它

注意当数组作为函数的参数进行传递时,该数组自动退化为同类型的指针。下例中,不论数组a的容量是多少,sizeof(a)始终等于sizeof(char *)


**********************************************


char a[] = "hello world";

    char *p  = a;

    cout<<
sizeof(a) << endl;   // 12
字节

 

    cout<<
sizeof(p) << endl;   // 4
字节

**********************************************


void Func(char a[100])

    {

        cout<< sizeof(a) << endl;   // 4字节而不是100字节

 

}

**********************************************

 

来自:高质量C++/C编程指南

 

抱歉!评论已关闭.