请问关于c++ sizeof()函数的问题,求解答!

如有 char *s="ab\0234\\\n79";
执行 sizeof(s);结果是多少?在内存如何存放?
请大哥大姐帮忙!

繁花不似锦
浏览 204回答 3
3回答

一只甜甜圈

首先 sizeof 不是函数 只是一个操作符.sizeof a因为a是数组名,当sizeof作用于一个class 、struct时,返回这些类型对象所占字节数,。当然 有这样一种情况 int a[10] ; void fun(int *a){cout<<sizeof a;}。 fun(a) 出来结果是4 , 数组名作为函数参数时会退化为指针。

LEATH

首先声明一下,sizeof在C++中不是函数,它也是一个操作系统,像new、delete一样。char *s是一个指针,所以sizeof(s) 的结果是s指针本身所占用的真实空间4个字节。c++标准库的<string.h>头文件下,有一个strlen()函数是用来测定字符串的长度的。你可以试试,它测出的是s所指向的字符串的长度,不是s指针本身的长度。

开心每一天1111

先给你看一下转义字符和它对应的意义:转义字符 转义字符的意义\n 回车换行\t 横向跳到下一制表位置\b 退格\r 回车\f 走纸换页\\ 反斜线符"\"\' 单引号符\” 双引号符\a 鸣铃\ddd 1~3 位八进制数所代表的字符\xhh 1~2 位十六进制数所代表的字符s 在内存的存放:a //存放ab //存放b\023 //存放八进制为 23 的数4 //存放 4\\ //存放反斜线符 \\n //存放换行7 //存放 79 //存放 9sizeof(s) 是求指针s本身的大小,一般是4strlen(s) 才是求s指向的字符串的长度,这里是8
打开App,查看更多内容
随时随地看视频慕课网APP