sizeof函数和strlen()函数

时间:2023-01-29 18:50:06


 sizeof函数功能:计算数据空间的字节数  在32或者64位编译器下所占字节是不同的,具体如下:

     1、32位编译器:

                   32位系统下指针占用4字节;

 
      
char:1个字节

      char*(即指针变量): 4个字节(32位的寻址空间是2^32, 即32个bit,也就是4个字节。同理64位编译器)       shortint: 2个字节       int  4个字节       unsigned int: 4个字节       float:  4个字节       double:   8个字节       long:   4个字节       longlong:  8个字节       unsigned long:  4个字节 2、64位编译器:  
    64位系统下指针占用8字节
 
   
 
 
char:1个字节
    char*(即指针变量): 8个字节    shortint: 2个字节    int  4个字节    unsigned int: 4个字节    float:  4个字节    double:   8个字节    long  8个字节    longlong:  8个字节    unsigned long:  8个字节

关于strlen()函数的使用说明  strlen()函数用来计算字符串的长度,其原型为:unsigned int strlen(char*s)
1、strlen()用来计算指定的字符串s的实际长度,不包括结束字符“\0”;例1:   char str[100]=“http://see.xidian.edu.cn./cpp/u/biaozhunku/”;   定义了一个大小为100的字符数组,但是仅有开始的43个字符被初始化了,剩下的都是0,   sizeof(str)等于100   strlen(str)等于43. 但是需注意:如果字符的个数等于字符数组的大小,那么strlen()的返回值就无法确定了例2:    char str[6]="abcxyz";    strlen(str)的返回值是不确定的。 strlen()函数计算的是字符串的实际长度,遇到第一个“\0”结束,如果只对字符数组定义但没有给他赋初值,这个结果是不定的,它会 从首地址一直找下去,直到遇到‘\0’停止。而sizeof()返回的是变量申明后所占的内存数,不是实际长度,此外sizeof不是函数,仅仅是 一个操作符,strlen()是函数。