zoukankan      html  css  js  c++  java
  • C语言——strlen()和sizeof的区别

    strlen()和sizeof()的区别:

      strlen()——>C字符串库函数,返回字符串的真实长度。它是从内存某位置开始扫描,直到碰到结束符''停止,返回计数器值。

      sizeof()——>操作符,返回的是变量声明后“占用”的内存大小,可能不是实际大小。

        int num;

        sizeof(num);  返回num占用内存大小。也可写作sizeof num (当后面是变量名时,可不加括号。)

        sizeof(int);  返回int型数据占用内存大小。(当后面是类型名时,一定要加括号。)

    下面的例子很好:

    #import <Foundation/Foundation.h>
    
    int main(int argc, const char * argv[])
    {
    
        @autoreleasepool {
            
            char arr1[] = "wanger";
            NSLog(@"strlen:%lu___sizeof:%lu",strlen(arr1),sizeof(arr1));
            /*
             strlen(arr1)————> 返回arr1里存储的字符串“wanger”的实际长度。
             sizeof(arr1)————> 返回数组arr1声明后占用的内存大小。(虽有6个字符,但系统会自动加结束符'',所以为7)
             */
            
            
            char arr2[10] = "wanger";
            NSLog(@"strlen:%lu___sizeof:%lu",strlen(arr2),sizeof(arr2));
            /*
             sizeof(arr2)————> 数组arr2声明时系统给它分配了10个字节。
             
             */
            char *p = "wanger";
            NSLog(@"strlen:%lu___sizeof:%lu",strlen(p),sizeof(p));
            /*
             注意:sizeof(p)————> 它的意思是返回指针变量p的长度,我们知道指针变量的长度不因指针变量类型而异,它只跟系统有关。
             
             */
            
        
        }
        return 0;
    }
  • 相关阅读:
    使用Python从Workflowy同步大纲到印象笔记
    使用Jenkins自动部署博客
    使用有限状态机原理实现英文分词
    TeamFlowy——结合Teambition与Workflowy提高生产力
    技巧收集-M1709
    Tenacity——Exception Retry 从此无比简单
    记住 Python 变量类型的三种方式
    Python 装饰器装饰类中的方法
    技巧收集-W1701
    DotnetSpider爬虫简单示例 net core
  • 原文地址:https://www.cnblogs.com/wangerxiansheng/p/4299470.html
Copyright © 2011-2022 走看看