在学习C语言中发现strlen和sizeof的关系不是很明确,今天来总结一下这两个的区别:

sizeof

  1. 是运算符,用来计算字节数,在计算字符串数组大小时包含(\0)
  2. 在编译时计算大小,参数可以是数组、指针、类型、对象、函数等。

strlen

  1. 是函数,用来测试字符串长度,不包含(\0)
  2. 在运行时计算大小,参数是字符型指针。
#include <stdio.h>
int main(void)
{
int size1, size2;
char a[] = "hello"; size1 = sizeof(a);
size2 = strlen(a);
printf("%d %d", size1, size2); return 0;
}

一般在数组中使用sizeof

结果:

总结的不是太详细,希望大家可以加以补充!

关于strlen和sizeof的使用的更多相关文章

  1. Strlen()与sizeof()

    在学习C语言时以及面试中,经常会见到strlen()与sizeof()这一对容易混淆的概念,搞清楚这两个概念,往往考察了编程人员对语言的基本掌握能力. 首先大家先明确两个概念是: 1.strlen() ...

  2. C语言——strlen()和sizeof的区别

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

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

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

  4. c strlen和sizeof详解

    用双引号定义并且声明的时候明确指定数组大小的话,sizeof就会返回指定的大小,不会自动加1: char str2[10] = "hello c"; printf("st ...

  5. 注意字符串的strlen与sizeof的差别

    unsigned char AT_RESET[]="r\r\n"; printf("strlen=%d sizeof=%d\n",strlen(AT_RESET ...

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

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

  7. strlen()和sizeof()求数组长度

    在字符常量和字符串常量的博文里有提: 求字符串数组的长度 标准库函数strlen(s)可以返回字符串s的长度,在头文件<string.h>里. strlen(s)的判断长度的依据是(s[i ...

  8. strlen和sizeof的区别

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

  9. strlen 与 sizeof 的区别

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

随机推荐

  1. 批处理快速合并多分Excel文件并将指定列的数据去重复

    1.批处理快速合并多个excel文件方法: 新建一个.txt文本文件,就命名为合并.txt吧. 而后开启文件,复制以下代码到文件中: @echo off E: cd xls dir copy *.cs ...

  2. Java程序内存分析

    1. Runtime.getRuntime().freeMemory() 和 jvisualvm.exe http://blog.csdn.net/u011004037/article/details ...

  3. conda 创建tensorflow虚拟环境后,无法import tensorflow在jupyter

    ensorflow安装好了,在python中也测试过了,但在jupyter中却会报错,原因是先装的Anaconda 之后装的tensorflow,所以环境有问题,所以需要重装jupyter,先激活te ...

  4. jdk 7&8 new features

    7 Diamond Operator(菱形操作符) You can omitted the type declaration of the right when working with Generi ...

  5. 【转帖】linux date 显示指定时区的时间 借助TZ 环境变量 export TZ=Asia/Shanghai 或 America/New_York

    linux date 显示指定时区的时间 借助TZ 环境变量 export TZ=Asia/Shanghai 或 America/New_York 2015-02-10 10:58:22 youcha ...

  6. STL源码剖析——iterators与trait编程#3 iterator_category

    最后一个迭代器的相应类型就是iterator_category,就是迭代器本身的类型,根据移动特性与实行的操作,迭代器被分为了五类: Input Iterator:这种迭代器所指的对象,不允许外界改变 ...

  7. 10分钟搭建一个小型网页(python django)(hello world!)

    10分钟搭建一个小型网页(python django)(hello world!) 1.安装django pip install django 安装成功后,在Scripts目录下存在django-ad ...

  8. 使用Python模块儿csv快速处理csv文件

    代码如下: import csv with open('test.csv',newline='') as f:     reader = csv.reader(f)     for row in re ...

  9. Angular Material 学习笔记 Chips

    依据 material guidelines, chips 可以用来做 filter https://material.io/design/components/chips.html#filter-c ...

  10. CentOS7.9防火墙命令

    CentOS7防火墙命令有变化: CentOS7:   systemctl status firewalld.service     查看防火墙状态 systemctl stop firewalld. ...