www.3112.net > C sizEoF问题

C sizEoF问题

答案选C 在c语言中char int float double 分别占1 2 4 8 个字节大小.sizeof()是计算变量所占内存的大小

注意sizeof的返回值类型是一个size_t型,而size_t是这样定义的,typedef unsigned int size_t,也就是说它是一个unsigned int型。所以只有第四个是对的,其它都会出错。

在Fn函数里,形参float b[]其实与float *b是等效的。 也就是说,在这里b实际上是一个指针,而在32位机器上,指针的大小是32位的,也就是4个字节。 而在主函数里,temp是一个数组,具有10个float元素,所以大小是40个字节。

以前的编译器多为16位int格式,现在大都是32位int格式了。32位int格式的编译器,定义int和long都是4字节,所以你得到的结果正确,都是4。

void prisuz (char a[]) 这个参数 a[]看起来是数组 实际上是当做指针操作的, 所以求sizeof(a)并不是数组占的空间而是指针本身占的空间 4个字节。 对于此类,需要把数组大小通过参数传过去,也就是再加个参数, void prisuz (char a[], int siz...

sizeof返回该变量占用的字节数。s是一个char数组,有20个元素,每个元素占1字节,所以共20字节。

在C/C++中,sizeof是操作符而不是函数,所以那对()不是必须的,在没有歧意时可以不写。sizeof操作符用来检测系统为跟在后面的变量、类型符分配了多少个字节。下面的代码可帮助理解: //#include "stdafx.h"//If the vc++6.0, with this line.#in...

sizeof可以计算一个类型乃至一个结构的大小空间 length只是针对字符串而言的 而且标准c里没有length这个函数 只有在C++中的string类中才有length这个函数

这是因为sizeof是一个运算符,也就是C的关键字,C规定关键字是不能用作标识符的哈

double是双精度浮点数,比float 能表示小数点儿后更多的位。 可以 语法上可以不一样,malloc的参数是分配置内存的大小,你写个240代替30*sizeof(double)也是可以的,但是不直观。返回值是void *, 前面的(double*)是强制类型转换,应该是要赋值...

网站地图

All rights reserved Powered by www.3112.net

copyright ©right 2010-2021。
www.3112.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com