由以下几个例子来说明sizeof和strlen的区别
①char* ss="0123456789"
sizeof(ss)的结果是4,ss指向字符串常量的字符指针
sizeof(*ss)的结果是1,*ss是第一个字符
②char ss[]="0123445678";
sizeof(ss)的结果是11,ss是数组,计算到'\0'的位置,因此是10+1;
sizeof(*ss)的结果是1,*ss是第一个字符
③char ss[100]="0123456789";
sizeof(ss)的结果是100,ss表示在内存中预分频的大小,100*1
strlen(ss)的结果是10,它的内部是用一个循环计算字符串的长度的,直到遇到'\0'为止
④int ss[100]={0,1,2,3,4,5,6,7,8,9};
sizeof(ss)的结果是400 100*4
sttrlen(ss)错误,strlen的参数只能是char*,并且是以'\0'结尾
通过对sizeof和strlen的理解得出二者的区别如下:
①sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int 类型,该类型保证能容纳实现所建立的最大对象的字节大小
②sizeof是运算符,strlen是函数
③sizeof可以用类型作为参数,而strlen只能用char*做为参数,并且必须是'\0'作为结尾,sizeof还可以用函数作为参数比如:
short f();
cout<<sizeof(f());
④数组作为sizeof用做参数不退化,传递给strlen就退化为指针了
⑤大部分编译程序在编译的时候就把siseof计算过了,是类型或者变量的长度,这就是用sizeof(x)可以用来定义数组维数的原因
⑥strlen的结果要在运行的时候才能计算出来,用来计算字符串的程度,而不是类型所占的大小
⑦当使用了一个结构类型或者变量时候,sizeof返回实际的大小,当使用一个静态的空间数组时候,sizeof返回全部数组的尺寸
分享到:
相关推荐
`sizeof`和`strlen`的主要区别在于: 1. 计算时机:`sizeof`是编译时操作,而`strlen`是运行时函数。 2. 应用范围:`sizeof`可应用于任何类型和变量,包括基本类型、结构体、数组等;`strlen`仅适用于C风格字符串。...
### sizeof与strlen的区别详解 #### 一、概述 在C/C++编程语言中,`sizeof`和`strlen`是两个非常重要的概念,它们都用于获取有关数据的信息,但各自的作用和应用场景有所不同。本文将详细介绍这两个操作符/函数的...
sizeof和strlen是两个常用的操作符和函数,但是它们的使用场景和返回结果却有很大的区别。本文将详细介绍sizeof和strlen的区别和联系。 1.sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int类型...
在C语言中,`sizeof`和`strlen`是两个非常重要的工具,它们分别用于获取不同类型的大小信息。`sizeof`是一个运算符,而`strlen`是一个函数,它们有着明显的区别。 1. `sizeof`运算符: - `sizeof`在编译时计算,...
`sizeof`和`strlen`是C语言中两个非常重要的概念,它们在处理内存和字符串长度时发挥着不同的作用。理解这两个操作符的区别对于编写高效、可靠的C程序至关重要。 `sizeof`是一个运算符,用于获取类型或者变量在内存...
在计算机编程领域,尤其是C语言或C++等底层语言中,`sizeof`和`strlen`是两个非常重要的操作符或函数,它们各自有着独特的用途和应用场景。本文将深入探讨这两个概念的区别及其背后的原理。 ### `sizeof`操作符 `...
Sizeof和Strlen是C++中用于处理内存和字符串长度的两个重要工具,它们有着显著的区别和特定的应用场景。 一、Sizeof Sizeof是一个运算符,它在编译时进行计算,返回值类型为size_t,即无符号整型,能够容纳系统中...
【Sizeof与Strlen的区别与联系】 Sizeof和Strlen是C/C++编程语言中用于获取数据大小和字符串长度的两个重要工具,但它们的作用和使用场景有所不同。 1. **Sizeof运算符**: - Sizeof是一个运算符,它在编译时计算...
本文将详细解析strcpy、sprintf、memcpy这三个函数的区别,以及sizeof和strlen这两个操作的区别。 首先,strcpy是一个专门用于字符串拷贝的函数,它从源字符串复制内容到目标字符串,直到遇到终止符'\0'为止。例如...
总之,`sizeof`和`strlen`是程序员在处理数据和字符串时经常用到的工具,理解它们的工作原理和区别对于编写高质量的C/C++程序具有重要意义。在实际编程中,根据需要选择合适的操作来获取正确的信息,可以提高代码的...
总结来说,sizeof和strlen的主要区别在于它们衡量的对象和目的。sizeof关注的是内存分配和数据类型,而strlen专注于字符串内容的长度。在编程实践中,正确理解和使用这两个函数能够帮助我们更有效地管理内存,避免因...
《Sizeof与Strlen的区别与联系》 在计算机编程中,`sizeof`和`strlen`是两个经常使用的操作符和函数,它们在处理字符串和数据类型时有着不同的作用和特性。本文将深入探讨它们之间的区别和联系。 首先,`sizeof`是...
在C语言中,`sizeof`和`strlen`都是用来获取内存占用信息的重要工具,但它们的应用场景和计算方式却有着显著的区别。本文将详细解析这两个操作符的特性。 首先,`sizeof`是C语言中的一个操作符,而不是函数。它能够...
然而,在使用sizeof和strlen时,很多开发者都会遇到一些问题,这篇文章将介绍sizeof和strlen的区别,并通过实例分析它们的使用场景。 首先,让我们来看一下sizeof和strlen的定义。sizeof是一个运算符,它用类型作为...
在C++编程语言中,`sizeof`和`strlen`是两个非常重要的运算符和函数,它们各自用于不同的目的。理解两者的区别对于编写高效且无误的代码至关重要。 `sizeof`是一个运算符,它返回一个类型或者表达式所占据的内存...
### 有关`strlen`和`sizeof`的归纳与总结 #### 一、`sizeof`的深入解析 **(一)`sizeof`的概念** `sizeof`是C语言中的一个单目操作符,它用来获取给定类型或表达式的字节大小。需要注意的是,`sizeof`不是一个...