c++ sizeof()函数

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

请大哥大姐帮忙!

先给你看一下转义字符和它对应的意义:
转义字符 转义字符的意义
\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
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-06-18
首先声明一下,sizeof在C++中不是函数,它也是一个操作系统,像new、delete一样。
char *s是一个指针,所以sizeof(s) 的结果是s指针本身所占用的真实空间4个字节。
c++标准库的<string.h>头文件下,有一个strlen()函数是用来测定字符串的长度的。你可以试试,它测出的是s所指向的字符串的长度,不是s指针本身的长度。
第2个回答  推荐于2017-10-04
首先 sizeof 不是函数 只是一个操作符.sizeof a因为a是数组名,当sizeof作用于一个class 、struct时,返回这些类型对象所占字节数,。当然 有这样一种情况 int a[10] ; void fun(int *a){cout<<sizeof a;}。 fun(a) 出来结果是4 , 数组名作为函数参数时会退化为指针。
第3个回答  2009-06-18
结果是1。
若操作数具有类型char、unsigned char或signed char,其结果等于1。
ANSI C正式规定字符类型为1字节。
第4个回答  2009-06-18
sizeof(s)=4
它输出的只是s这个指针的大小,指针变量大小都是4

C++中sizeof()的意思是什么?
具体的讲,sizeof是求长度的函数,它的结果类型就是无符号整形表达sizeof(double)是指求double类型数据的数据长度。

sizeof()是什么意思?
sizeof() 是一种内存容量度量函数,功能是返回一个变量或者类型的大小(以字节为单位)。char是c语言中基本类型,一般char类型占1个字节。sizeof(char)的结果是,1。sizeof:计算数据类型长度 char = 1 int 2,long 4 int a[6];sizeof (a) 2*6= 12 单位都是字节。float 4 ...

C++ 关于size()和sizeof()
在C++编程中,两个常用的操作符size()和sizeof()具有不同的功能。首先,size()函数主要用于获取字符串的长度,与C++11之前的length()函数用法相似。例如,当你定义一个字符串`string str = "0123456789";`时,`str.length()`会返回10,而`str.size()`也同样得到10。虽然两个函数功能相同,但size...

C++ sizeof的用法
sizeof是计算数据(包括数组、变量、类型、结构体等)所占内存空间,用字节数表示(当然用在字符数组计算"\\0"的大小)。在32位的系统中,sizeof(int)的值为4。如果x是int型的数组,则sizeof(x)\/sizeof(int)代表x的位数。

sizeof()在C语言中是什么作用啊?
sizeof是C语言中保留关键字,也可以认为是一种运算符,单目运算符。常见的使用方式:int a=10;int arr=[1,2,3];char str[]="hello";int len_a = sizeof(a);int len_arr = sizeof(arr);int len_str = sizeof(str)printf("len_a=%d,len_arr=%d,len_str=%d\\n",len_a,len_arr,...

谁来解释一下sizeof()函数?
sizeof()是用来计算变量、结构、类等等在内存中所占的字节数 int a[10]表示在内存中分配了10个整型变量,每个整形变量占4字节,所以为40,&a表示取地址,可能在各个编译器实现不同

关于C\/C++中的sizeof
本文详细介绍了C\/C++语言中的sizeof运算符,它用于获取操作数在内存中的存储大小,以字节为单位。sizeof并非函数,而是一种单目操作符,适用于表达式和类型名。使用时需注意,它不适用于函数类型、不完全类型以及位字段。对于基本数据类型,如int、float等,其大小没有硬性规定,但通常有通用的大小规则。...

C++ length()、size()、sizeof()三者的区别
c++中,length()只是用来获取字符串的长度。c++中,在获取字符串长度时,size()函数与length()函数作用相同。 除此之外,size()函数还可以获取vector类型的长度。sizeof()运算符用来求对象所占内存空间的大小。需要注意的是,如果不使用Vector作为数组进行参数传递,那么在传递数组引用是需要再传递一个...

C++ 关于size()和sizeof()
1、size()函数:c++中,在获取字符串长度时,size()函数与length()函数作用相同。 除此之外,size()函数还可以获取vector类型的长度。例如:vector < int> num(15,2) ,则:num.size() = 15。2、sizeof():sizeof()运算符用来求对象所占内存空间的大小。假设以下对象,分别使用sizeof函数:执...

c++数组,sizeof()函数的问题
sizeof()是不能根据数组第一个元素的地址就可以得到整个数组的大小的,只能从数组名a才能得到,你可以试一下sizeof( &a[0] ),它的结果绝对 不是整个数组的大小。总结一下:sizeof函数是根据参数的类型算出size的,并不是根据参数的值。比如 long b = 10; short c = 10; sizeof(b) 与 ...

相似回答