strlen()和sizeof()的区别:

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

  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个字符,但系统会自动加结束符'\0',所以为7)
*/ char arr2[] = "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 ;
}

C语言——strlen()和sizeof的区别的更多相关文章

  1. 函数strlen()和sizeof的区别

    函数strlen()和sizeof的区别: #include<stdio.h> #include<stdlib.h> #include<string.h> #def ...

  2. c语言中:strlen和sizeof的区别和它们分别交换各自作用领域(\0问题)时的细微差别!!!

    本人c语言初学菜鸟一枚,今天通过敲了一段简单代码,发现strlen和sizeof之间的一些关系,总结如下: 用strlen计算数组长度要考虑进去\0 用sizeof计算字符串长度也要考虑进去\0 而s ...

  3. 嵌入式-C语言基础:字符串strlen和sizeof的区别

    strlen表示的实际的字符串长度,不会把字符串结束符'\0'计算进去,而sizeof则不是实际的字符串长度,它会把字符串的结束标识符'\0'也包含进去. #include<stdio.h> ...

  4. strlen 与 sizeof 的区别

    void ngx_time_init(void) { ngx_cached_err_log_time.len = sizeof("1970/09/28 12:00:00") - 1 ...

  5. strlen和sizeof的区别

    1.sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int类型.该类型保证能容纳实现所建立的最大对象的字节大小.   2.sizeof是算符,strlen是函 ...

  6. strlen与sizeof的区别 [转]

    转自:http://www.cppblog.com/liangbo/archive/2006/10/06/13394.html 1.sizeof操作符的结果类型是size_t,它在头文件中typede ...

  7. strlen() 和 sizeof() 的区别

    1.strlen() 时函数,他在程序运行时才能计算.它的参数类型要求时 char *,且必须是以'/0'结尾.数组在传入时已经退化为指针.它的作用是返回数组中字符串的长度. 2.sizeof()时运 ...

  8. C++ 浅谈 strlen 与 sizeof的区别

    先举个栗子: 字符串数组跟字符串指针,然后分别使用sizeof跟strlen看输出结果. char strA[] = "2017-7-19"; char *strB = " ...

  9. C语言strlen函数和sizeof操作符

    字符'x'于字符串"x"的区别 'x' 属于基本类型(char)字符类型-----------------由1个字符组成('x') "x"属于派生类型(char ...

随机推荐

  1. 我的第一个html计算器

    html代码. <!DOCTYPE HTML> <html> <head> <style type="text/css"> body ...

  2. JavaScript之cookie

    JavaScript通过Cookie实现简单的用户登录状态的保存.Cookie可以跨越多个网页使用,但不能跨域名使用,也不同跨浏览器使用. 1.设置cookie function SetCookie( ...

  3. JQuery获取Checkbox组的值

    前台: <div id="addtrtr" style="padding:20px; background-color:#F8F8F8;"> < ...

  4. CRC循环校验码

    为了防止数据在传输的时候丢失或被篡改,有了各种校验码. 每种CRC校验都有自己的多项式.每个多项式都有唯一对应的二进制. CRC16就如果名字一样,校验码就是16位的 如果CRC32就是32位的. 原 ...

  5. beforefieldinit释义(2)

    首先来看一段代码: using System; namespace BeforeFieldInit { internal class Foo { Foo(){ Console.WriteLine(&q ...

  6. BZOJ 3648: 寝室管理( 点分治 + 树状数组 )

    1棵树的话, 点分治+你喜欢的数据结构(树状数组/线段树/平衡树)就可以秒掉, O(N log^2 N). 假如是环套树, 先去掉环上1条边, 然后O(N log^2 N)处理树(同上); 然后再O( ...

  7. Activity关闭另一个Acitivity

    1.ActivityA跳转到ActivityB 2.ActivityB跳转到ActivityC 3.ActivityC结束掉自己的同时结束ActivityB 在ActivityB中声明一个自己的参数i ...

  8. .offset()与.position()区别

    jQuery中有两个获取元素位置的方法offset()和position(),两者的定义如下:   offset():获取匹配元素在当前视口的相对偏移.返回的对象包含两个整形属性:top 和 left ...

  9. 下载PHPDroid: 基于WebView和PHP内置HTTP服务器开发Android应用

    基于Android上的PHP(比如我打包的PHPDroid),寥寥几行PHP代码,就能实现一个支持无线局域网用浏览器访问的Android手机的Shell,用于执行命令和PHP代码.       个人在 ...

  10. class属性多个样式的用法

    今天看到一个非常好用的样式用法,给已经在睡梦中苏醒的你们来一段代码头脑风暴.大家都知道现在div+css布局的使用已经不是可以用潮流来概括的了,换个词应该是:普及.以前的表格布局现在是少之极少,因为表 ...