首页 > 其他分享 >strlen和sizeof

strlen和sizeof

时间:2023-05-21 11:02:57浏览次数:30  
标签:arr char arr2 printf sizeof strlen

1. strlen详解

strlen() 是一个库函数, 用于计算字符串长度的函数. 

char arr1[] = "Hello";
printf("%d \n", strlen(arr1));  //6

/*
	注意这种情况: 这里是因为末尾的'\0' 没有分配存储空间, 实际上等效于
	char arr2[10] = { 'H', 'e', 'l', 'l', 'o' };
*/
char arr2[5] = "Hello";
printf("%d \n", strlen(arr2)); //21(随机值)

2. sizeof详解

sizeof() 实际上是一个C/C++语言的操作符, 用于获取一个变量, 数据类型, 或者表达式所占用的内存大小.(以字节为单位)

#include <stdio.h>

int main() {

	char arr1[] = "Hello";
	char arr2[10] = "Hello";

	//'\0'也占内存空间, 但在并不算在字符串长度内.
	printf("%d \n", sizeof(arr1)); //6
	printf("%d \n", sizeof(arr2)); //10
	
	return 0;
}

3. 数组大小的计算

值得注意的是, 在数组为char类型时, sizeof(arr) 和sizeof(arr)/sizeof(arr[0])

计算的到的大小时一样的, 因为char类型大小为1个字节. 

int arr[10];
int sz = sizeof(arr)/sizeof(arr[0]);

标签:arr,char,arr2,printf,sizeof,strlen
From: https://blog.51cto.com/u_16120559/6318745

相关文章

  • sizeof和strlen的区别
    1.sizeof和strlen的区别strlen是头文件cstring中的函数,sizeof是c++的运算符,strlen测量的是字符串的实际长度,以\0结束,而sizeof测量的是对象或者表达式类型占用的字节大小size_tstrlen(constchar*str){size_tlength=0;while(*str++){++leng......
  • sizeof的用法
    sizeof(a)如果a是指针类型,那就是返回地址长度(64位系统下是8字节)如果a是类对象,那就返回类对象的长度如果a是数组名,那就返回数组所占字节的大小,而不是数组中元素的个数,此处需要特别注意!!!如果要获取数组的元素个数,需要用如下方式:sizeof(a)/sizeof(type),其中type为数组中的元素类型......
  • C++——string 成员函数 length(),size() 和 C strlen() 的区别
    //方法一:调用length()或size()stringstrTest="test";strTest.length();//4strTest.size();//4//方法二:转为C风格字符串,调用strlen()strlen(strTest.c_str());//4注意:当string中含有空字符’\0’,使用 strlen()获取stri......
  • cpp结构体的sizeof涉及到的字节对齐问题代码-内存初探
    #include<iostream>usingnamespacestd;intmain(){structS1{chara;//占8个,因为要和double对齐doubleb;//占8个字节};cout<<sizeof(S1)<<endl;//16/*内存地址排列方式[00,01,02,03,04,05,06,07,08,09,1......
  • (第八篇)__format__、__hash__、__init_subclass__、__reduce_ex__、__reduce__、__si
    一、__format__(self,format_spec)当我们使用format()方法对一个对象进行格式化时,如果这个对象有__format__方法,那么这个方法就会被调用。它接受一个变量作为参数,并返回一个格式化后的字符串。classPerson:def__init__(self,name,age):self.name=name......
  • sizeof 和 strlen 的区别
    sizeof() 是一个运算符,而 strlen() 是一个函数。sizeof() 计算的是变量或类型所占用的内存字节数,而 strlen() 计算的是字符串中字符的个数。sizeof() 可以用于任何类型的数据,而 strlen() 只能用于以空字符‘0’结尾的字符串。 注意:chars[]="hello"prinrf("%......
  • 77.sizeof和strlen
    1.sizeof运算符●sizeof运算符返回一条表达式或者一个类型名字所占的字节数,sizeof运算符满足右结合律,其所得的值是一个是size_t类型的常量表达式。●size_t是一种机器相......
  • stlren和sizeof()区别
    strlen函数和sizeof运算符都可以用来计算字符串的长度,但它们的作用不同。strlen函数的作用是计算字符串的长度,不包括字符串末尾的空字符。例如,如果有一个字符串"hello",那么......
  • 反汇编strlen函数
    0.本文结构概述strlen库函数实现原理公式分析(变换形式)计算步骤分析(有些繁琐,后续会修改优化)C语言实现该函数汇编语言实现该函数1.strlen库函数实现原理使用VS2......
  • sizeof和strlen
    所有的字符窜都是以‘\0’结束的 sizeof和strlensizeof()是一个关键字,表示的是操作数所占空间的大小;strlen()是一个函数(参数必须是char*的指针),表示的是字符......