sizeof+char+的值
答:sizeof(char*) 返回字符型指针所占内存的大小,值为4,所有指针的大小值都为4,注意~是指针,不管是什么型的。而sizeof(char) 则是返回char类型所占的内存大小,值为1,不同类型所占内存不一定相同,即使相同,对于数值的辨认也不同,建议翻一翻相关书籍~...
答:sizeof(char)返回的值是1个字节,1个字节是8个位.怎么是4个位呢?字节也是计算机存储和计算的最小单位.任何计算机上,一个字节都是8个位.
答:sizeof(char)=(1 )字节,sizeof(long)=( 8)字节
答:编译器不同,结果会有所不同。如果是VC、VS编译器,结果为1,表示字符中的字节数。如果结果是2,那么只有一个解释,‘a’是整型常量,是unsigned int,且楼主的编译器中int的宽度为16位2字节,所以是2。
答:sizeof(char) = 1 sizeof(short) = 2 sizeof(int) = 2(16位机),4(32位机),8(64位机)sizeof(float) = 4 sizeof(long) = 4(不知道64位机是多少)这些其实是每种变量类型所占用的内存的字节数。3.14实际是一个浮点数,系统会分配一个能够存储浮点数的最大空间内存,就是double类型 ...
答:结果是1.char只占一个字节宽度。
答:该字符占4字节。sizeof(char*)的值为4。因为char*代表一个指针,在32bit环境中为4字节,也即unsigned int的字节长度。在C语言中,sizeof是一个操作符(operator),而不是函数。其用于判断数据类型或者表达式长度(所占的内存字节数)。
答:abc)=sizeof(char *) *3 而sizeof(char *)的值,就是地址总线带宽的值(等同于sizeof(int))。最常用的32位机 这个值是4 所以sizeof(abc)的值应为12 测试程序 int main(){ char *abc[3] = {"one", "two", "three"};printf("%d\n", sizeof(abc)/sizeof(char));} 输出 12 ...
答:sizeof是C/C++中的一个操作符(operator),作用就是返回一个对象或者类型所占的内存字节数。返回值类型为size_t,在头文件stddef.h中定义 这是一个依赖于编译系统的值,一般定义为typedef unsigned int size_t;编译器林林总总,但作为一个规范,都会保证char、signed char和unsigned char的sizeof值为1,毕竟char是编...
答:那么,sizeof(char)=1, sizeof(int)=4,sizeof(short)=2。所以对于name1,str起始地址为name1+0,x起始地址为name1+2,num起始地址为name1+4。计算到name1的末端,一共8个字节长,其中有3字节没有存储数据。name2同理,str:0 num:4 short:8,总共占据10字节,不过,struct的大小本身也有...
网友评论:
郗瑾17345437967:
C语言里sizeof(char)是什么意思 -
2270雍巧
: sizeof() 是一种内存容量度量函数,功能是返回一个变量或者类型的大小(以字节为单位). char是c语言中基本类型,一般char类型占1个字节. sizeof(char)的结果是,1. sizeof:计算数据类型长度 char = 1 int 2, long 4 int a[6]; sizeof (a) 2*6...
郗瑾17345437967:
sizeof(char)+6*(6>5)/(2>3?2:3)表达式的值是( ). -
2270雍巧
: 在32位机中:sizeof(char) = 1;6 > 5 = 1;2 > 3 ? 2 : 3 = 3; sizeof(char)+6*(6>5)/(2>3?2:3) = 1 + 6 * 1 / 3 = 1 + 2 = 3
郗瑾17345437967:
char a=255; printf("%d",sizeof(++a)); printf("%d",a); 第二个输出结果为什么是 - 1 -
2270雍巧
: 调试的时候可以看下内存,这个是最权威的,你的疑问都可以通过看内存解决. a的类型是char,占一个字节,16进制是0xff. sizeof(char)的大小是1,所以第一个打印1. 验证了下,此处++a没有加. sizeof一般不会对后面的表达式求职,只会判断它的类型,你可以试试求一个函数名的大小,你会发现那个函数是没有被调用的. 有地方说sizeof是在编译的时候确定的,我试了下,我定义了一个数组int aa[sizeof(double)],编译的时候可以通过,说明确实是这样的.在编译的时候是不能进行表达式的求值计算的,所以也可以证明这里没有自加
郗瑾17345437967:
若有下面的说明和电脑定义,则sizeof(struct aa)的值是 -
2270雍巧
: sizeof(char)=1 sizeof(int)=2 sizeof(long)=4 sizeof(float)=4 sizeof(double)=8 sizeof(struct aa) = sizeof(int) + sizeof(double) + sizeof(float) + max(5*sizeof(char),2*sizeof(long)) =2+8+4+max(5,8)=22
郗瑾17345437967:
求字符串长度的问题(sizeof) -
2270雍巧
: 说白了,sizeof是求类型的大小,不管是表达式还是后面直接加类型;换种说法是在其后表达式在内存中占用的字节. p是char *类型,当然是4字节.你改为char p[] = "hello"; 这就是后面字符串的长度. 或者 用strlen函数要是规定只能用sizeof,那就这样写. int size = 0; while(*p++)size += sizeof(*p); 没什么意义,这样的代码写出来让人笑话.
郗瑾17345437967:
sizeof(“C2009”)的值是6.请问为什么?能不能解释的详细点??谢谢了!! -
2270雍巧
: c2009是一个字符串,每个字符串都有一个结束标志即\0,“C2009"在内存里是这个存储的:C 2 0 0 9 \0,占用的空间是6个字节,如果是"c200"就是5个字节,其他同理.祝你好运:) 对了,sizeof()是取得空间长度,比如,sizeof(int)值为2,表示一个整型数据占用2个字节的存储空间,sizeof(float)值为4,表示一个浮点型数据占用4个字节的存储空间.题中所说的是字符型数据,sizeof(char)值为1,也就是说,一个字符型数据占用一个字节的内存空间,c2009占了5个,再加上结束标识符\0,就是6个了.
郗瑾17345437967:
32位系统,C++程序,sizeof的值 char str[] = "http://www.ibegroup.com"; sizeof(str); -
2270雍巧
: sizeof(str)应该为24//我稍微去数了下你那个网址........你懒得数可以用strlen(str)来获得 这个和32位与64位无关,这个和字节数有关,char为一字节,你哪里有23个char加上一个字符结尾char,所以是24字节数,在内存中为8位一字节,总共8*24位
郗瑾17345437967:
c++ sizeof用法 -
2270雍巧
: 一、由几个例子说开去.第一个例子:char* ss = "0123456789"; sizeof(ss) 结果 4 ===》ss是指向字符串常量的字符指针 sizeof(*ss) 结果 1 ===》*ss是第一个字符char ss[] = "0123456789"; sizeof(ss) 结果 11 ===》ss是数组,计算到\0位...
郗瑾17345437967:
如果 char x[]=”CHINA:则sizeof(x)的值为是什么?
2270雍巧
:你弄错语句了吧,应该是char x[]=“CHINA”;吧.sizeof()是一个函数,在这儿的作用是测试数组的长度,所以值为6.
郗瑾17345437967:
关于一个指针问题 -
2270雍巧
: 问题1:由于形参实参的特性,slove(a)是不会修改a的值的.问题2:sizeof(char *)的值是4,因为指针的大小一般都是4,我估计你要写的是sizeof(char)吧