当前位置:三九宝宝网 → 宝宝教育 → 教学论文 → 正文

请问C语言中 sizeof怎么用

更新:01-04 整理:39baobao.com
字体:

[输入10个整数按照由大到小的顺序输出C语言编写]#include <stdio.h> #define NUM 10 void main() { int i,j,k,a[NUM]; printf("请输入10个数字进行从大到小的排序:"); for(i=0;i<NUM;i++) { scanf("%d",&a[i]); } for(i=0;i<NUM;i...+阅读

2. 语法:

sizeof有三种语法形式,如下:

1) sizeof( object ); // sizeof( 对象 );

2) sizeof( type_name ); // sizeof( 类型 );

3) sizeof object; // sizeof 对象;

所以,

int i;

sizeof( i ); // ok

sizeof i; // ok

sizeof( int ); // ok

sizeof int; // error

既然写法3可以用写法1代替,为求形式统一以及减少我们大脑的负担,第3种写法,忘

掉它吧!

实际上,sizeof计算对象的大小也是转换成对对象类型的计算,也就是说,同种类型的

不同对象其sizeof值都是一致的。这里,对象可以进一步延伸至表达式,即sizeof可以

对一个表达式求值,编译器根据表达式的最终结果类型来确定大小,一般不会对表达式

进行计算。如:

sizeof( 2 );// 2的类型为int,所以等价于 sizeof( int );

sizeof( 2 + 3.14 ); // 3.14的类型为double,2也会被提升成double类型,所以等价

于 sizeof( double );

sizeof也可以对一个函数调用求值,其结果是函数返回类型的大小,函数并不会被调用

,我们来看一个完整的例子:

char foo()

{

printf("foo() has been called.\n");

return 'a';

}

int main()

{

size_t sz = sizeof( foo() ); // foo() 的返回值类型为char,所以sz = sizeof(

char ),foo()并不会被调用

printf("sizeof( foo() ) = %d\n", sz);

}

C99标准规定,函数、不能确定类型的表达式以及位域(bit-field)成员不能被计算s

izeof值,即下面这些写法都是错误的:

sizeof( foo );// error

void foo2() { }

sizeof( foo2() );// error

struct S

{

unsigned int f1 : 1;

unsigned int f2 : 5;

unsigned int f3 : 12;

};

sizeof( S.f1 );// error

本文地址:https://www.39baobao.com/show/29_22886.html

以上内容来自互联网,请自行判断内容的正确性。若本站收录的信息无意侵犯了贵司版权,请联系我们,我们会及时处理和回复,谢谢.

以下为关联文档:

小班语言教案手心里的亲亲活动过程: 一、活动开始 1、入场:小朋友们,娃娃家里用漂亮的小垫子铺成了小路,我们爬上去吧。 2、热身活动:脚尖碰一碰,碰一碰!小手绕一绕,啪啪啪!头儿摇一摇,摇一摇! 3、让我们象小钟...

小班语言教案我有一双脚幼儿园教案:我有两只脚 教师:屈老师 活动目标: 初步认识自己的小脚,知道自己有两只脚,小脚会做事,是自己的好朋友 通过看、摸、玩等多种方式进一步认识自己的脚 体验和小脚玩游戏...

小班语言教案握握手活动目标: 1、喜欢欣赏儿歌能理解儿歌大意,了解小狗的食性。 2、学习使用“黑黝黝”词语说完整的话 3、认识重点字词,“小花狗”、“眼睛”、“骨头”。 活动准备: 教学大范例...

幼儿语言活动教案小班路上真热闹运动目的: 1、开端生长幼儿的空间方位感知本领。 2、牢固训练徒手用泥团聚与搓长的技巧。 3、开端训练分泥的技巧。 小班社会教案:来幼儿园的路上 运动预备: 彩色长布条多少、...

小班幸福感教案语言幼儿园语言教案及反思:我家在哪里教师:屈老师活动目标: 1、能清楚地说出自己家住哪里,并制定附近的一些明显建筑物或公共场所 2、学会看简单的路线图。重点:让幼儿完整地说出自己...

用c语言数组做大数加减乘除急参考代码:#include#define MAXINT 1000 int compare(int a[],int b[]); int bigplus(int a[],int b[],int c[]); int bigsub(int a[],int b[],int c[]); int bigmult(int a[]...

c语言大数的加法用数组char指针实现做大数加法,首先要能保存大整数。C能提供的最大的整数类型也就是long long int了吧,还是有上限。用整数类型这条路不通。所以想到把大整数看作字符串(即char数组),一位数字就是数...

c语言大数算法#include#include#define MAXSIZE 600 void Add(char *str1, char *str2, char *str3){// str3 = str1 + str2; int i, j, i1, i2, tmp, carry; int len1 = strlen(str1), l...

C语言如何实现大数相加问题各位高手多多指教!可以的。 我曾经编写过100的阶乘的程序。在这个程序中,计算结果达到几千位, 这样大的数据很明显是任何数据类型都表示不了的。 不过,你可以把大数用数组来表示,比如1258746这个...