(白话)C\C++中的size()、length()、strlen()、sizeof()用法

您所在的位置:网站首页 sql用in会不会走索引 (白话)C\C++中的size()、length()、strlen()、sizeof()用法

(白话)C\C++中的size()、length()、strlen()、sizeof()用法

2023-10-21 08:29| 来源: 网络整理| 查看: 265

个人感觉C\C++对字符处理并不太好,本篇内容也是一些公司喜欢问的基础问题。

首先,讨论一下size()、length()、strlen()、sizeof()区别(很多人搞不清楚)

size()和length()这两个函数是用来计算string类对象或者即STL对象方法。都是计算字符串长度。

strlen()是函数,参数必须是字符型指针(char*),计算从开始到结束(’\0‘),返回的长度大小不包括’\0’,也是计算字符长度。sizeof()是运算符,不能计算复杂内存分配空间大小。计算字符所占空间大小。实例(这里只考虑基础数据类型) size()和length()实例 string str1 = "qwe"; int laji = 0,laji2 = 0; laji = str1.size(); //3 laji2 = str1.length(); //3

运行结果:

strlen()实例 char cha[10] = "abasdasc"; char* ch3 = "shh"; int i = 0, i1 = 0; i = strlen(ch3); //3 i1 = strlen(cha); //8

运行结果:

 sizeof()实例 char cha[10] = "abasdasc"; char m_p[] = "shh";// { '1','2','3','4','5' }; int length = 0; length = sizeof(ch3); //4 包含\0结束符,所以长度+1 length = sizeof(*ch3); //1 *ch3是第一个字符 length = sizeof(m_p); //4 length = sizeof(*m_p); //1 length = sizeof(cha); //10 分配10个内存地址 length = sizeof(*cha); //1

这里有个特殊情况:

字符数组作形参传入函数是,会退化成指针。(这里实际是传入的数组的首地址,也就是个指针)

void function(char a[]) { cout


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3