3 回答
TA贡献1836条经验 获得超5个赞
首先 sizeof 不是函数 只是一个操作符.sizeof a因为a是数组名,当sizeof作用于一个class 、struct时,返回这些类型对象所占字节数,。当然 有这样一种情况 int a[10] ; void fun(int *a){cout<<sizeof a;}。 fun(a) 出来结果是4 , 数组名作为函数参数时会退化为指针。
TA贡献1936条经验 获得超6个赞
首先声明一下,sizeof在C++中不是函数,它也是一个操作系统,像new、delete一样。
char *s是一个指针,所以sizeof(s) 的结果是s指针本身所占用的真实空间4个字节。
c++标准库的<string.h>头文件下,有一个strlen()函数是用来测定字符串的长度的。你可以试试,它测出的是s所指向的字符串的长度,不是s指针本身的长度。
TA贡献1836条经验 获得超13个赞
先给你看一下转义字符和它对应的意义:
转义字符 转义字符的意义
\n 回车换行
\t 横向跳到下一制表位置
\b 退格
\r 回车
\f 走纸换页
\\ 反斜线符"\"
\' 单引号符
\” 双引号符
\a 鸣铃
\ddd 1~3 位八进制数所代表的字符
\xhh 1~2 位十六进制数所代表的字符
s 在内存的存放:
a //存放a
b //存放b
\023 //存放八进制为 23 的数
4 //存放 4
\\ //存放反斜线符 \
\n //存放换行
7 //存放 7
9 //存放 9
sizeof(s) 是求指针s本身的大小,一般是4
strlen(s) 才是求s指向的字符串的长度,这里是8
- 3 回答
- 0 关注
- 236 浏览
添加回答
举报