sizeof和strlen的区别 strlen 与sizeof()的区别

strlen(char*)函数求的是字符串的实际长度,它求得方法是从开始到遇到第一个'',如果你只定义没有给它赋初值,这个结果是不定的,它会从aa首地址一直找下去,直到遇到''停止。?

  char?aa[10];cout<<strlen(aa)<<endl;?//结果是不定的?

  char?aa[10]={''};?cout<<strlen(aa)<<endl;?//结果为0?

  char?aa[10]="jun";?cout<<strlen(aa)<<endl;?//结果为3?

  而sizeof()返回的是变量声明后所占的内存数,不是实际长度,此外sizeof不是函数,仅仅是一个操作符,strlen是函数。?

  sizeof(aa)?返回10?

  int?a[10];?sizeof(a)?返回40?

  1.sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int类型。?

  该类型保证能容纳实现所建立的最大对象的字节大小。?

  2.sizeof是操作符(关键字),strlen是函数。?

  3.sizeof可以用类型做参数,strlen只能用char*做参数,且必须是以''''结尾的。?

  sizeof还可以用函数做参数,比如:?

  short?f();?

  printf("%dn",?sizeof(f()));?

  输出的结果是sizeof(short),即2。?

  4.数组做sizeof的参数不退化,传递给strlen就退化为指针了。?

  5.大部分编译程序?在编译的时候就把sizeof计算过了是类型或是变量的长度这就是sizeof(x)可以用来定义数组维数的原因?

  char?str[20]="0123456789";?

  int?a=strlen(str);?//a=10;?

  int?b=sizeof(str);?//而b=20;?

sizeof和strlen的区别 strlen 与sizeof()的区别

6.strlen的结果要在运行的时候才能计算出来,是用来计算字符串的长度,不是类型占内存的大小。  

7.sizeof后如果是类型必须加括弧,如果是变量名可以不加括弧。这是因为sizeof是个操作符不是个函数。?

  8.当适用了于一个结构类型时或变量,?sizeof?返回实际的大小,?

  当适用一静态地空间数组,?sizeof?归还全部数组的尺寸。?

  sizeof?操作符不能返回动态地被分派了的数组或外部的数组的尺

  

爱华网本文地址 » http://www.aihuau.com/a/8104320103/239871.html

更多阅读

电脑休眠和睡眠区别以及怎么唤醒 电脑休眠和睡眠的区别

电脑闲置的时候,除了关机之外,用户还可以考虑将电脑设为休眠或睡眠状态。与关机相比,系统具有以下休眠和睡眠区别和优点:1:不需要关闭正在进行的工作,电脑唤醒后,所有打开的程序、窗口马上恢复至休眠或睡眠之前的状态,方便用户继续

丝绸之路与郑和下西洋的目的 郑和下西洋与丝绸之路

丝绸之路与郑和下西洋的目的池敬嘉要想寻求证确的答案,首先得弄清楚动机。也就是,郑和为什么要下西洋?历史的必由之路正如郑和所指出的那样:“欲国家富强,不可置海洋于不顾。财富取之海洋,危险亦来自海上。”郑和的这句至理名言,既是他屡

关于BSP,BIOS,和bootloader区别 b2b和bsp的区别

关于BSP,BIOS,和bootloader区别BSP是板级支持包,是介于主板硬件和操作系统之间的一层,应该说是属于操作系统的一部分,主要目的是为了支持操作系统,使之能够更好的运行于硬件主板。BSP是相对于操作

牛根生:“商战”与“商和”的抉择

 由美国人艾·里斯、杰克·特劳特著的《商战》是一本很有意思的书。名为“商战”,但书中既有“战”的思维,也有“和”的策略——甚至,“避战”、“不战”、“大路朝天,各走一边”等“商和”之道实际上才是作者强调的优先选择。   这

手机行货和水货的区别 手机水货和行货区别

? ? ? ? ? ? ? ? ? ? ? ? ? ? ??手机水货和行货区别水货,一般是指港行版,亚太版,甚至欧版。只是产地和销售地不同。行货,只是在中国大陆销售的大陆版。高仿,就是外形相似,但系统,软件都无法跟上,质量也很差!常用的一些方法技巧正

声明:《sizeof和strlen的区别 strlen 与sizeof()的区别》为网友小男生分享!如侵犯到您的合法权益请联系我们删除