C\C++之字符常量与字符串常量在内存中占据的字节数

您所在的位置:网站首页 ‘a’在内存中占的字节数是 C\C++之字符常量与字符串常量在内存中占据的字节数

C\C++之字符常量与字符串常量在内存中占据的字节数

2024-07-13 05:36| 来源: 网络整理| 查看: 265

C\C++之字符常量与字符串常量在内存中占据的字节数 一、关于字符常量&字符串常量二、字符串详解三、易错实例详解1、字符串常量"abc\n"包含几个字符?2、字符串常量"abc\0de"包含几个字符,占据多少个字节?3、易错点:区分sizeof函数和strlen函数 叮嘟!这里是小啊呜的学习课程资料整理。好记性不如烂笔头,今天也是努力进步的一天。一起加油进阶吧! 在这里插入图片描述

一、关于字符常量&字符串常量

字符常量,所占内存字节数就是字符个数个字节;

字符串常量,所占内存字节数比字符串实际字符个数多了1个字节,因为C格式的格式字符串在后面加了一个结束标志位‘\0’。

二、字符串详解

用双撇号括起来的部分就是字符串常量,如“abc”,"Hello!"都是字符串常量。

字符串常量"abc"在内存中占用4个字节(而不是3个字节),编译系统会在字符串最后自动加上一个'\0'作为字符串结束标志。 但'\0'并不是字符串的一部分,它只作为字符串的结束标志。字符串常量通常要用字符数组来存放。

三、易错实例详解 1、字符串常量"abc\n"包含几个字符? 字符串常量"abc\n"包含几个字符? 4字符,占据5个字节;

不是5个而是4个字符,其中“\n”是一个转义字符。但它在内存中占用5个字节(其中一个“\0”字符)。如果在一个字符串中最后一个字符为“\”,则表示它是续行符,下一行的字符是该字符串的一部分,且在两行字符串间无空格。

2、字符串常量"abc\0de"包含几个字符,占据多少个字节? #include using namespace std; int main() { char s[]="abc\0de"; //注意此处的字符串中出现了终结符'\0' printf("%d",sizeof(s)); //得到答案为7,包括【1】a、【2】b、【3】c、【4】\0、【5】d、【6】e、【7】\0 }

在这里插入图片描述

3、易错点:区分sizeof函数和strlen函数 sizeof(s)得到答案为7,包括【1】a、【2】b、【3】c、【4】\0、【5】d、【6】e、【7】\0 strlen(s)得到答案为3,包括【1】a、【2】b、【3】c

在这里插入图片描述 sizeof函数:计算字符串占的总内存空间

例如字符串 str[20]= “abcd” sizeof(str),结果为20

strlen函数:获取字符串的长度。//遇到终结符‘\0’就会终止。

例如字符串 str[20]= {“abcd”}; strlen(str),结果为4

测试程序如下:

#include #include using namespace std; int main() { char s[20]="abc\0de"; printf("%d\n",sizeof(s)); printf("%d",strlen(s)); }

测试结果如下: 在这里插入图片描述 注意此处3的获得是因为字符串中的终结符出现。

Ending! 更多课程知识学习记录随后再来吧!

就酱,嘎啦!

在这里插入图片描述

注: 人生在勤,不索何获。



【本文地址】


今日新闻


推荐新闻


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