sizeof()函数用法汇总

sizeof()函数用法汇总
sizeof()函数用法汇总

sizeof()函数用法汇总

1. 与strlen()比较

strlen计算字符数组的字符数,以“\0"为结束符,不计算“\0"为数组元素。

sizeof()计算数据(数组、变量、类型、结构体等)所占空间,用字节数表示。2.指针与静态数组的sizeof操作

指针均可看为变量类型的一种,所有指针变量的sizeof操作结果均为4 。(这个已实践证明)

所以不要用下面的方式去计算一个字符数组的长度:

char *a= "nihaomao";

int count = sizeof(a);//返回值为4

而应该使用下面的方式计算:

char a[] = "nihaomao";

int count = sizeof(a);返回值为1*8=8

int a[10];

sizeof(a)则返回值为4*10=40 。PS:数组做形参时,数组名称被当做指针使用。例如:(已验证)

void fun(char p[]) {

sizeof(p); //返回值为4

}经典问题:

double* (*a)[3][6];

cout<<sizeof(a)<<endl; // 4 a为指针

cout<<sizeof(*a)<<endl; // 72 *a为一个有

3*6个指针元素的数组

cout<<sizeof(**a)<<endl; // 24 **a为数组一维的6个指针

cout<<sizeof(***a)<<endl; // 4 ***a为一维的第一个指针

cout<<sizeof(****a)<<endl; // 8 ****a为一个double变量问题解析:a是一个很奇怪的定义,他表示一个指向double*[3][6]类型数组的指针。既然是指针,所以sizeof(a)就是4。

既然a是执行double*[3][6]类型的指针,*a就表示一个double*[3][6]的多维数组类型,因此

sizeof(*a)=3*6*sizeof(double*)=72。同样的,**a表示一个double*[6]类型的数组,所以sizeof(**a)=6*sizeof

(double*)=24。***a就表示其中的一个元素,也就是double*了,所以sizeof(***a)=4。至于****a,就是一个double了,所以sizeof(****a)=sizeof(double)=8。3.格式的写法

sizeof操作符,对变量或对象可以不加括号,但若是类型,须加括号。

4.使用sizeof时string的注意事项

string s="hello";

sizeof(s)等于string类的大小,sizeof(s.c_str())得到的是与字符串长度。

5.union 与struct的空间计算

总体上遵循两个原则:

(1)整体空间是占用空间最大的成员(的类型)所占字节数的整倍数

(2)数据对齐原则----内存按结构成员的先后顺序排列,当

排到该成员变量时,其前面已摆放的空间大小必须是该成员类型大小的整倍数,如果不够则补齐,以此向后类推。。。。。

注意:数组按照单个变量一个一个的摆放,而不是看成整体。如果成员中有自定义的类、结构体,也要注意数组问题。

sizeof计算含有虚函数的类的空间大小

sizeof计算含有虚函数的类的空间大小 当我们计算一种数据类型所占用的空间大小时,很easy,sizeof就可以解决掉。如果我们计算一个类,一个空类,或者一个含有虚函数然后又派生子类时,这时候他们所占用的内存空间是如何变化的呢?下面我们就通过代码来介绍下。 一个不含有虚函数的普通类与其派生类的内存关系 class Base { public: Base(int x):a(x) {} void print() { cout<

2.对于Derived类 Derived类继承于Base类,自然的继承了其成员变量a,自身又扩展了自己的成员变量b,因而多了4个字节。所以Derived类所占用的内存空间大小应该为8字节。 一个含有虚函数的类与其派生类的内存空间占用关系 class A { public: A(int x):a(x){} virtual void print(){cout<

在Excel中If函数的使用方法

在Excel中If函数的使用方法 ▲在“成绩表”工作表中,在“等级”字段下用粘贴函数的if 函数将“英语”成绩小于60分的用“不及格”表示;60~89分的用“合格”表示;大于等于90分的用“优秀”表示。 ▼=IF(E7>=90,"优秀",IF(AND(E7>=60,E7<90),"合格",IF(E7<60,"不及格"))) ■高中同学遇到了一个在excel中的函数问题,我们探讨了一下,感觉还可以,基本上可以实现目前想要的结果,就是在excel 中把两列的数值进行对应,输入一个值就出来另外一个数值.这样的问题可以用if函数来解决的,通过if函数自然就可以看到结果.不过这样的if最多就7个,不能满足需要,我觉得通过计算机其他语言的学习,我完全可以用case语句,如果case语句用不了,不知道还能用什么语句了. D2小于等于50,D3小于等于1800便为"合格"反之为:"不合格",公式应该是输入? =if(and(d2<=50,d3<=1800),"合格","不合格") 在B1单元格编辑公式 =IF(A1>=500,"一级",IF(AND(A1>=450,A1<500),"二级","三级")) 回车确认即可。 可以用填充柄把B1中的公式向下复制到相应的单元格。 就这些语句就足够了. 只要掌握了他的语句格式,和他的语法,基本上就可以解决的.不

过excel中应该还有很多其他的功能和算法需要研究. 眼镜小熊的问题:我在学校里做成绩单,老班要求每一个人列出自己的追赶目标是谁,为了在成绩单里体现每个同学的追赶成功与否,要把同学本人的成绩与被追赶同学的成绩加以比较,再返回Yes或No。可是用手工一个个向单元格里制造函数太累了,谁能帮我想个一劳永逸的办法? 增加K列,显示追赶成功与否的结果(如上图所示),在K4中输入公式: =IF(ISNA(MATCH(J4,$B$4:$B$9,0)),"",IF(H4

sizeof()用法汇总

sizeof()功能:计算数据空间的字节数 1.与strlen()比较 strlen()计算字符数组的字符数,以"\0"为结束判断,不计算为'\0'的数组元素。 而sizeof计算数据(包括数组、变量、类型、结构体等)所占内存空间,用字节数表示。 2.指针与静态数组的sizeof操作 指针均可看为变量类型的一种。所有指针变量的sizeof 操作结果均为4。 注意:int *p; sizeof(p)=4; 但sizeof(*p)相当于sizeof(int); 对于静态数组,sizeof可直接计算数组大小; 例:int a[10];char b[]="hello"; sizeof(a)等于4*10=40; sizeof(b)等于6; 注意:数组做型参时,数组名称当作指针使用!! void fun(char p[]) {sizeof(p)等于4} 经典问题: double* (*a)[3][6]; cout<

IF函数的使用方法及操作实例

IF函数的使用方法及操作实例 分步阅读 IF函数:假设条件性的函数,即执行真假值的判断,根据逻辑计算的真假值,返回不同的结果。EXCEL中IF函数的使用非常广泛,特别是在单条件判断的时候,用好 IF函数可以帮我们完成很多功能。现结合具体的实例操作,进行说明:方法/步骤 1.一、IF函数的基本应用。 if(logical_test,value_if_true,value_if_false) IF是条件判断函数:=IF(测试条件,结果1,结果2),即如果满足“测试条件” 则显示“结果1”,如果不满足“测试条件”则显示“结果2”。 例一: 图1中,成绩结果60分以上(含60分)为及格,60分以下为不及格。执行IF 函数如下: 在C2单元格中输入:=IF(B2>=60,“及格”,“不及格”),再把此单元格格式往下拉动,即可。 注意:“及格”,“不及格”的双引号,要在英文输入法情况下输入的引号(" )。 如下图1。

2.二、IF函数的复杂应用。IF 函数条件带复合运算。 例二:股票佣金计算。在股票交易中,经常要考虑成本,而佣金占很大的成本。 佣金怎么计算?佣金:佣金费率最高千分之三,最低5元,不足5元,按5元收取。现在佣金费率以千分之三,运用IF函数进行计算。 图2中,红色单元格为佣金值。佣金 = 成交金额 * 佣金费率0.003 。在红色单元格D7中输入:=IF(D4*B7>=5,D4*B7,5) 就会自动计算佣金费。图 2.1为大于或等于5元时的情况,图2.2为不足5元时的情况,仍会显示5。 如下图2 3. 3 三、IF函数高级嵌套应用。

例三:IF函数嵌套运用。某公司销售提成的计算,销售额大于80万元(含80万),提成按40%计算;销售额为80-60万(含60万),提成按30%计算;销售额小于60万,提成按20%计算。计算方法:在C2单元格输入:=IF(B2>=800000,B2*0.4,IF(AND(B2<800000,B2>=600000),B2*0.3,IF(B2<600000,B2*0.2))) 如下图3。 END 注意事项 IF函数的嵌套,有几层IF条件,后面就有几个反括号。嵌套最多不要超过7层。

c语言的sizeof函数

? ? 聚焦 ? 论坛 ? 博客 ? 来吧 ? 问答 ? 游戏 ? 品牌 ? 购物街 ? ? 登录 ? 注册 ? 社区服务 首页 > 提问列表 > 提问 c 中的sizeof 函数放在哪个头文件? [编程 数据库 ] 悬赏点数 10 3个回答 肚兜2569 2009-06-18 13:04:51 172.30.211.* c 中的sizeof 函数放在哪个头文件? 回答 登录并发表 取消 回答 jjvcd3 2009-06-18 13:05:15 59.175.191.* sizeof 是单目运算符,是关键字之一,不是函数,没有头文件 lclcug 2009-06-18 23:00:39 58.242.187.* 1.sizeof 操作符的结果类型是size_t ,它在头文件中typedef 为unsign ed int 类型。该类型保证能容纳实现所建立的最大对象的字节大小。 2.sizeof 是算符 圣斗士之家 2009-06-19 17:54:42 123.6.3.* SizeOf Pascal 的一种内存容量度量函数: 用法: Var 等您来回答 pe 的桌面文件放在哪个目录下 - 0个回答 魔兽3.0.5版本安装文件怎样放在别的磁盘? - 1个回答 psp 看电影把影片放在哪个文件里? - 1个回答 多普达领航者的历史地址放在哪个文件中 - 1个回答 艾奇mp4转换器转换完的文件会放在哪里 - 1个回答

a : array[1..10000] of longint; Begin Writeln(SizeOf(a)); End. 输出:40000 如果定义Integer,则输出:20000 c语言中判断数据类型长度符 用法 sizeof(类型说明符,数组名或表达式); 或 sizeof 变量名 1. 定义: sizeof是C/C++中的一个操作符(operator)是也,简单的说其作用就是返回一个对象或者类型所占的内存字节数。 MSDN上的解释为: The sizeof keyword gives the amount of storage, in bytes, associated with a variable or a type (including aggregate types). This keyword returns a value of type size_t. 其返回值类型为size_t,在头文件stddef.h中定义。这是一个依赖于编译系统的值,一般定义为 typedef unsigned int size_t; 世上编译器林林总总,但作为一个规范,它们都会保证char、sig ned char和unsigned char的sizeof值为1,毕竟char是我们编程能用的最小数据类型。 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 绿坝截屏文件放在哪个目 录 - 2个回答 放在桌面的文件在哪个文件夹 - 5个回答

C语言32个关键字九种控制语句34种运算符

总结归纳了C语言的32个关键字 第一个关键字:auto 用来声明自动变量。可以显式的声明变量为自动变量。只要不是声明在所有函数之前的变量,即使没加auto关键字,也默认为自动变量。并且只在声明它的函数内有效。而且当使用完毕后,它的值会自动还原为最初所赋的值。自动变量使用时要先赋值,因为其中包含的是未知的值。 例:auto int name=1; 第二个关键字:static 用来声明静态变量。可以显式的声明变量为静态变量。也为局部变量。只在声明它的函数内有效。它的生命周期从程序开始起一直到程序结束。而且即使使用完毕后,它的值仍旧不还原。即使没有给静态变量赋值,它也会自动初始化为0. 例:static int name=1. 第三个关键字:extern 用来声明全局变量。同时声明在main函数之前的变量也叫全局变量。它可以在程序的任何地方使用。程序运行期间它是一直存在的。全局变量也会初始化为0. 例:extern int name; 第四个关键字:register 用来声明为寄存器变量。也为局部变量,只在声明它的函数内有效。它是保存在寄存器之中的。速度要快很多。对于需要频繁使用的变量使用它来声明会提高程序运行速度。 例:register int name=1; 第五个关键字:int 用来声明变量的类型。int为整型。注意在16位和32位系统中它的范围是不同的。16位中占用2个字节。32位中占用4个字节。还可以显式的声明为无符号或有符号: unsigned int或signed int .有符号和无符号的区别就是把符号位也当作数字位来存储。也可用short和long来声明为短整型,或长整行。 例:int num; 第六个关键字:float 用来声明变量的类型。float为浮点型,也叫实型。它的范围固定为4个字节。其中6位为小数位。其他为整数位。 例:float name;

excel if函数 if函数嵌套用法

excel函数中 if函数的使用非常广泛,特别是在单条件判断的时候,用好if函数可以帮我们完成很多功能。 最简单的 excel if函数应用 例子:下图数据在d列显示如下结果:如果数据1大于60则显示合格,否则显示不合格。 那么在d2单元格输入以下公式: =if(a2>60,"合格","不合格") 然后向下拖拽,自动生成数据,如下图D列效果。 if函数必须的条件: 每一个 if函数必须使用英文的括号括起来; 括号内为三个数据,第一个数据是条件(如上例中的a2>60),第二数据为满足第一个数据后返回的结果,通常使用英文的引号括起来,第三个数据是不满足第一个数据时需要返回的结果;(如果不输入第三个数据可以吗,当然可以,返回什么结果自己试试吧) 经常出现的错误: 其中的符号如逗号和引号皆为英文(也就是所谓的半角); if的右括号放在了条件的后面;(这是在多个条件使用if函数进行嵌套时非常容易犯的错误) if函数嵌套用法

例子:下图数据,在e列显示如下结果:如果数据1小于60则显示不合格,如果大于等于60而小于80则显示合格,如果大于等于80而小于90显示良好,如果大于等于90则显示优秀。 这是经典的if嵌套应用例子,需要我们使用 if函数的嵌套。 if嵌套书写前,首先你要理解要求,并将要求数学化,也就是使用数学的模式表达出来,if函数多重嵌套一般情况下我们可以将它看做分段函数,那么问题就很容易解决了。例子可以在E2单元格使用如下代码: =if(a2<60,"不合格",if(a2<80,"合格",if(a2<90,"良好","优秀"))) 当数据1小于60时,显示不合格,这时在“不合格”逗号的右侧默认就是>=60的情况,那么根据题意,只需再满足<80即可显示合格,于是我们将最简单的 if 函数的第三个数据变成了一个if函数,依次类推,每一次可以将一个if函数作为每一个基本函数的第三个数据,从而形成多种嵌套。 (图例中多余在最后一个 if前后加了一个括号,当然这种方法也正确,但不是最简单的。) 其实还有另一种写法,也就是将嵌套的if写在基本if函数的第二个数据的位置,如下图,不过这种写法不常用,也比较不好理解,并且容易写错,不推荐大家使用。

在Excel中If函数的使用方法

在Excel中If函数的使用方法 电脑资讯2007-10-15 16:58:46 阅读3614 评论0 字号:大中小订阅 ▲在“成绩表”工作表中,在“等级”字段下用粘贴函数的if函数将“英语”成绩小于60分的用“不及格”表示;60~89分的用“合格”表示;大于等于90分的用“优秀”表示。 ▼=IF(E7>=90,"优秀",IF(AND(E7>=60,E7<90),"合格",IF(E7<60,"不及格"))) ■高中同学遇到了一个在excel中的函数问题,我们探讨了一下,感觉还可以,基本上可以实现目前想要的结果,就是在excel中把两列的数值进行对应,输入一个值就出来另外一个数值.这样的问题可以用if函数来解决的,通过if函数自然就可以看到结果.不过这样的if最多就7个,不能满足需要,我觉得通过计算机其他语言的学习,我完全可以用case语句,如果case语句用不了,不知道还能用什么语句了. D2小于等于50,D3小于等于1800便为"合格"反之为:"不合格",公式应该是输入? =if(and(d2<=50,d3<=1800),"合格","不合格") 在B1单元格编辑公式 =IF(A1>=500,"一级",IF(AND(A1>=450,A1<500),"二级","三级")) 回车确认即可。 可以用填充柄把B1中的公式向下复制到相应的单元格。 就这些语句就足够了. 只要掌握了他的语句格式,和他的语法,基本上就可以解决的.不过excel中应该还有很多其他的功能和 算法需要研究. □在Excel中If函数的使用方法https://www.360docs.net/doc/d06720805.html,/question/15517131.html https://www.360docs.net/doc/d06720805.html,/qdike/blog/item/6f639f58c48be7de9c8204cb.html 回答眼镜小熊的问题:我在学校里做成绩单,老班要求每一个人列出自己的追赶目标是谁,为了在成绩单里体现每个同学的追赶成功与否,要把同学本人的成绩与被追赶同学的成绩加以比较,再返回Yes 或No。可是用手工一个个向单元格里制造函数太累了,谁能帮我想个一劳永逸的办法? 增加K列,显示追赶成功与否的结果(如上图所示),在K4中输入公式: =IF(ISNA(MATCH(J4,$B$4:$B$9,0)),"",IF(H4

C语言中的sizeof的理解

C语言中的sizeof的理解。。 一、sizeof的概念 sizeof是C语言的一种单目操作符,如C语言的其他操作符++、--等。它并不是函数。sizeof操作符以字节形式给出了其操作数的存储大小。操作数可以是一个表达式或括在括号内的类型名。操作数的存储大小由操作数的类型决定。 二、sizeof的使用方法 1、用于数据类型sizeof使用形式:sizeof(type) 数据类型必须用括号括住。如sizeof(int)。 2、用于变量sizeof使用形式:sizeof(var_name)或sizeof var_name 变量名可以不用括号括住。如sizeof(var_name),sizeof var_name等都是正确形式。带括号的用法更普遍,大多数程序员采用这种形式。 注意:sizeof操作符不能用于函数类型,不完全类型或位字段。不完全类型指具有未知存储大小的数据类型,如未知存储大小的数组类型、未知内容的结构或联合类型、void类型等。 如sizeof(max)若此时变量max定义为int max(),sizeof(char_v)若此时char_v定义为char char_v[MAX]且MAX未知,sizeof(void)都不是正确形式。 三、sizeof的结果 sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int类型。该类型保证能容纳实现所建立的最大对象的字节大小。 1、若操作数具有类型char、unsigned char或signed char,其结果等于1。 ANSI C正式规定字符类型为1字节。 2、int、unsigned int、short int、unsigned short、long int、unsigned long、float、double、long double类型的sizeof在ANSI C中没有具体规定,大小依赖于实现,一般可能分别为2、2、2、2、4、4、4、8、10。 3、当操作数是指针时,sizeof依赖于编译器。例如Microsoft C/C++7.0中,near类指针字节数为2,far、huge类指针字节数为4。一般Unix的指针字节数为4。 4、当操作数具有数组类型时,其结果是数组的总字节数。 5、共用体类型操作数的sizeof是其最大字节成员的字节数。结构类型操作数的sizeof 是这种类型对象的总字节数。 让我们看如下结构: struct{char b;double x;}a; 在某些机器上sizeof(a)=12,而一般sizeof(char)+sizeof(double)=9。 这是因为编译器在考虑对齐问题时,在结构中插入空位以控制各成员对象的地址对齐。如double类型的结构成员x要放在被4整除的地址。 6、如果操作数是函数中的数组形参或函数类型的形参,sizeof给出其指针的大小。 四、sizeof与其他操作符的关系 sizeof的优先级为2级,比/、%等3级运算符优先级高。它可以与其他操作符一起组成表达式。如i*sizeof(int);其中i为int类型变量。 五、sizeof的主要用途 1、sizeof操作符的一个主要用途是与存储分配和I/O系统那样的例程进行通信。例如: void*malloc(size_t size), size_t fread(void*ptr, size_t size, size_t nmemb, FILE*stream)。 2、sizeof的另一个的主要用途是计算数组中元素的个数。例如: void*memset(void*s, int c, sizeof(s))。

C语言二级考前一个月复习概况

整数的三种表示形式 表示形式 组成 开头部分 十进制 D,或不加表示 0-9 以1-9开头 八进制 O 0-7 以0开头 十六进制 H 0-9,A-F 以0x 开头 int a[100],*p; 等价语句 p=a; P=&a[0]; 等价语句 p=a+1; P=&a[1]; 文本文件 二进制文件 使用方式 含义 使用方式 含义 r 打开文本文件进 行只读 rb 打开二进制文件进行只读 w 建立新的文本文件进行只写 wb 建立二进制文件进行只写 a 打开文本文件进 行追加 ab 打开二进制文件进行追加/写 R+ 打开文本文件进 行读/写 Rb+ 打开二进制文件进行读/写 W+ 建立新的文本文件进行读/写 Wb+ 建立二进制文件进行读/写 A+ 打开文本文件进行读/写/追加 Ab+ 打开二进制文件进行读/写/追加

指针是以地址作为其值的变量,数组名的值是一个特殊的固定地址,可以作为常量指针。 类型 名称 类型名 数据长度 整型 整型 Int 32位 短整型 Short int 16位 长整型 Long int 32位 字符型 字符型 Char 8位 实型(浮点型) 单精度浮点型 float 32位 双精度浮点型 double 64位 函数 数据类型 格式 printf float %f double %e scanf float %f %e double %lf %le 字符串的输入和输出 输入 Scanf() 该函数遇到空格或回车输入结束 Gets() 该函数遇到回车符输入结束 输出 Printf() 输出时遇到’\0’输出结束 Puts() 输出时遇到’\0’输出结束 运算符 优先级 结合方式 优先级:高->低 逻辑运算符 ! 右->左 算术运算符 ++ -- + - * 右->左 * / % + - 左->右 关系运算符 <= < >= > == != 左->右 逻辑运算符 && || 左-> 右 条件表达式 ?: 右->左 赋值运算符 *= /= %= += - = = 右->左

sizeof深入理解(vcbase)

sizeof深入理解(vcbase) ? 1.sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int类型。 该类型保证能容纳实现所建立的最大对象的字节大小。 ? 2.sizeof是算符,strlen是函数。 ? 3.sizeof可以用类型做参数,strlen只能用char*做参数,且必须是以''\0''结尾的。 sizeof还可以用函数做参数,比如: ?short f(); ?printf("%d\n", sizeof(f())); 输出的结果是sizeof(short),即2。 ? 4.数组做sizeof的参数不退化,传递给strlen就退化为指针了。 ? 5.大部分编译程序在编译的时候就把sizeof计算过了是类型或是变量的长度这就是sizeof(x)可以用来定义数组维数的原因 ?char str[20]="0123456789"; ?int a=strlen(str); //a=10; ?int b=sizeof(str); //而b=20; ? 6.strlen的结果要在运行的时候才能计算出来,时用来计算字符串的长度,不是类型占内存的大小。 ?7.sizeof后如果是类型必须加括弧,如果是变量名可以不加括弧。这是因为sizeof是个操作符不是个函数。 ?8.当适用了于一个结构类型时或变量, sizeof 返回实际的大小,当适用一静态地空间数组, sizeof 归还全部数组的尺寸。 sizeof 操作符不能返回动态地被分派了的数组或外部的数组的尺寸 ?9.数组作为参数传给函数时传的是指针而不是数组,传递的是数组的首地址,如: ?fun(char [8]) ?fun(char []) 都等价于 fun(char *) 在C++里传递数组永远都是传递指向数组首元素的指针,编译器不知道数组的大小如果想在函数内知道数组的大小,需要这样做:进入函数后用memcpy 拷贝出来,长度由另一个形参传进去 fun(unsiged char *p1, int len) { unsigned char* buf = new unsigned char[len+1] memcpy(buf, p1, len); } 有关内容见: C++ PRIMER? ?10.计算结构变量的大小就必须讨论数据对齐问题。为了CPU存取的速度最快(这同CPU 取数操作有关,详细的介绍可以参考一些计算机原理方面的书),C++在处理数据时经常把结构变量中的成员的大小按照4或8的倍数计算,这就叫数据对齐(data

最新sort函数的用法

sort函数的用法 做ACM题的时候,排序是一种经常要用到的操作。如果每次都自己写个冒泡之类的O(n^2)排序,不但程序容易超时,而且浪费宝贵的比赛时间,还很有可能写错。STL里面有个sort 函数,可以直接对数组排序,复杂度为n*log2(n)。使用这个函数,需要包含头文件。 做ACM题的时候,排序是一种经常要用到的操作。如果每次都自己写个冒泡之类的O(n^2)排序,不但程序容易超时,而且浪费宝贵的比赛时间,还很有可能写错。STL里面有个sort 函数,可以直接对数组排序,复杂度为n*log2(n)。使用这个函数,需要包含头文件。 这个函数可以传两个参数或三个参数。第一个参数是要排序的区间首地址,第二个参数是区间尾地址的下一地址。也就是说,排序的区间是[a,b)。简单来说,有一个数组int a[100],要对从a[0]到a[99]的元素进行排序,只要写sort(a,a+100)就行了,默认的排序方式是升序。 拿我出的“AC的策略”这题来说,需要对数组t的第0到len-1的元素排序,就写sort(t,t+len); 对向量v排序也差不多,sort(v.begin(),v.end()); 排序的数据类型不局限于整数,只要是定义了小于运算的类型都可以,比如字符串类string。 如果是没有定义小于运算的数据类型,或者想改变排序的顺序,就要用到第三参数——比较函数。比较函数是一个自己定义的函数,返回值是bool型,它规定了什么样的关系才是“小于”。想把刚才的整数数组按降序排列,可以先定义一个比较函数cmp bool cmp(int a,int b) { return a>b; } 排序的时候就写sort(a,a+100,cmp); 假设自己定义了一个结构体node struct node{ int a; int b; double c;

(完整版)excel中if函数用法

函数: “=IF(A ,B ,C)”,意思是“如果 A ,那么 B ,否则 C 。” 如“=IF(A1<60,"不及格","及格") ”,意思是“如果 A1<60,那么‘不及格',否则‘及格'。” 有时候,情况不是这么简单,比如及格的成绩中又要分为 “及格”“良好”“优秀”三个等级,这时就可以在 C 中重复应用函数 IF ,正如你举的例子。实际上, “=IF(A ,B ,C)”中的 A 、B 、C 三处都可以再用函数 IF 。 具体例子请看附件。 如果 A2 是“男”,以 B2>100 为判断条件,否则以 B2>95 为判断条件;符合条 件的为合格,不符合条件的为不合 格。 IF( IF(A2=" 男",B2>100,B2>95) ," 合格"," 不合格") A : IF(A2=" 男",B2>100,B2>95) B :"合格" 如果 B9 是数值,则划分等级,否则复制 IF(ISNUMBER(B9),IF(B9>=60," 及格"," A :ISNUMBER(B9) B :IF(B9>=60," 及格"," 不及格") C :B9 [0292]Excel 中 IF 函数的使用 2008-10-15 第一部分:《 Excel 中 IF 函数的使用》教案 教学对象:文秘班 课时: 45分钟( 1课时) 教学目标:要让学生理解 Excel 中 IF 函数的意义;知道它的使用格式;掌握它的基础使用 方法,最后能灵活地运用 IF 函数解决问题。 教学方法:引导、层层深入、任务驱动 教学条件: 多媒体教室 C :"不合格" B9 的内容。 不及格") ,B9)

教学过程: 一、复习回顾:在Excel 中比较运算符的运用。教师提问,学生回答 甲比乙高根据实际情况回答是(TRUE)还是不是(FALSE)一班比二班少人根据实际情况回答是(TRUE)还是不是(FALSE) 猴子比大象轻 TRUE 6>4TRUE 6<4FALSE 强调TRUE和FALSE 两个答案,引起学生的注意:通过比较后答案只有两个其中之一,就是TRUE或FALSE。 二、新课导入 提出问题:有没有办法可以改写上面问题比较后的答案?如用' yes' 和' no'、' ok'和' bad'、' 1'和' 2'、'好'和'差'、'对'和'错'等。说明:用来替代‘ TRUE'和 ‘ FALSE'的两个值是我们自定义的两个值。[ 学生思考] 教师肯定回答:可以,那就是IF 函数来帮你解决这个问题。怎么样来解决呢? 让学生带着问题来学习 三、新课讲授 1、列出IF 函数的使用格式:=IF( 条件表达式, 值1, 值2) 2 、说明IF 函数的意义:如果条件表达式经过判断结果是对(真值TRUE)的,则返回值1;如果条件表达式经过判断结果是错(假值TRUE)的,则返回值2。 3、利用前面复习例子剖析IF 函数使用时的固定不变的格式。系统定义值和自定义值时的表达。指明哪是表达式,哪是值。[ 要详细分析讲解] 如:=IF(6>4,TRUE, FALSE) =IF(6>4, YES,NO) =IF(6<4, FALSE,TRUE)=IF(6<4, 错, 对)

IF函数的使用方法(入门级)

一、IF函数的使用方法(入门级) 1、单条件判断返回值 =IF(A1>20,"完成任务","未完成") 2、多重条件判断 =IF(A1="101","现金",IF(A1="1121","应收票据",IF(A1=1403,"原材料"))) 注:多条件判断时,注意括号的位置,右括号都在最后,有几个IF就输入几个右括号。 3、多区间判断 =IF(A1<60,"不及格",IF(A1<80,"良好","优秀")) =IF(A1>=80,"优秀",IF(A1>=60,"良好","不及格")) 注:IF在进行区间判断时,数字一定要按顺序判断,要么升要不降。 二、IF函数的使用方法(进阶) 4、多条件并列判断 =IF(AND(A1>60,B1<100),"合格","不合格")

=IF(OR(A1>60,B1<100),"合格","不合格") 注:and()表示括号内的多个条件要同时成立 or()表示括号内的多个条件任一个成立 5、复杂的多条件判断 =IF(OR(AND(A1>60,B1<100),C1="是"),"合格","不合格") =IF(ADN(OR(A1>60,B1<100),C1="是"),"合格","不合格") 6、判断后返回区域 =VLOOKUP(A1,IF(B1=1,C:D,F:G),2,0) 注:IF函数判断后返回的不只是值,还可以根据条件返回区域引用。 三、IF函数的使用方法(高级) 7、IF({1,0}结构 =VLOOKUP(A1,IF({1,0},C1:C10,B1:B10),2,0) {=VLOOKUP(J15&K15,IF({1,0},A1:A2&B1:B2,C1:C2),2,0)} 注:利用数组运算返回数组的原理,IF({1,0}也会返回一个数组,即当第一个参数为1时的结果放在第1列,为0时的结果放在数组第二列。

枚举大小sizeof中枚举的大小详解

至从语言开始类型就被作为用户自定义分类有限集合常量地方法被引入到了语言当中,而且一度成为中定义编译期常量地唯一方法(后来在类中引入了静态整型常量). 根据上面对类型地描述,有以下几个问题: .到底所定义出来地类型是一个什么样地类型呢? .作为一个用户自定义地类型其所占用地内存空间是多少呢? .使用类型是否真地能够起到有限集合常量地边界约束呢? .大家可能都知道类型和类型具有隐示(自动)转换地规则,那么是否真地在任何地方都可以使用类型地变量来代替类型地变量呢? . 到底所定义出来地类型是一个什么样地类型呢? 在中大家都知道仅仅有两种大地类型分类:类型(注())和类类型. 所定义地类型其实属于类型,也就是说它会参与到类型地隐示转换规则当中去,所以才会出现类型与类型之间地隐示转换现象. 那么也就是说所定义地类型不具备名字空间限定能力(因为不属于类类型),其所定义地常量子具备和类型所在名字空间相同地可见性,由于自身没有名字限定能力,所以会出现名字冲突现象. 如: { { , }; { , }; }; 上面地例子会出现、名字冲突编译时错误,原因就在于枚举子(、)是名字空间中地名字,同样在引用该中地枚举子时必须采用这样地方式进行,而不是来进行引用. 注()类型: 你可以将类型看作是一种来自外太空地用绿色保护层包装地数据类型,意为“”(译者:如果一定要译成中文,那就叫“彻头彻尾地老数据”怎么样!)这就是类型地含义. 其确切定义相当粗糙(参见标准),其基本意思是类型包含与兼容地原始数据. 例如,结构和整型是类型,但带有构造函数或虚拟函数地类则不是. 类型没有虚拟函数,基类,用户定义地构造函数,拷贝构造,赋值操作符或析构函数. 为了将类型概念化,你可以通过拷贝其比特来拷贝它们.此外,类型可以是非初始化地.b5E2R。 . 作为一个用户自定义地类型其所占用地内存空间是多少呢? 该问题就是( )等于多少地问题,是不是每一个用户自定义地枚举类型都具有相同地尺寸呢? 在大多数地位编译器下(如:、等)一个枚举类型地尺寸其实就是一个( )地大小,难道枚举类型地尺寸真地就应该是类型地尺寸吗? 其实不是这样地,在标准文档()中并没有这样来定义, 标准中是这样说明地:“枚举类型地尺寸是以能够容纳最大枚举子地值地整数地尺寸”, 同时标准中也说名了:“枚举类型中地枚举子地值必须要能够用一个类型表述”, 也就是说,枚举类型地尺寸不能够超过类型地尺寸,但是是不是必须和类型具有相同地尺寸呢?上面地标准已经说得很清楚了,只要能够容纳最大地枚举子地值地整数就可以了,那么就是说可以是、和. 例如:

C语言中sizeof()的用法

C语言中sizeof()的用法 2008-12-31 09:45:35.0 来源:51CTO 关键词:C语言 要参加软件研发的笔试(C/C++)几乎都会涉及到sizeof()的用法,我昨天也遇到了,有的也会,但是真正sizeof()的核心还是没有领会,今天上网,无聊中就看到了详细的sizeof()的阐述,现在分享给大家。 ------------sizeof---------------- sizeof 一般形式为:sizeof(object),也可以sizeof var_char,不过大部分programer 习惯用sizeof()。 对象可以是表达式或者数据类型名,当对象是表达式时,括号可省略。sizeof是单目运算符,其运算符的含义是:求出对象在计算机内存中所占用的字节数。一般来讲,不同的机器,运行不同的对象是不一样的,当目前几乎所有的机器都是32位,很少16位的,所以一般考试都是基于32位的window和linux的。 C语言中数据类型不多。 1.整数型的: short,int,long(我没有考虑符号问题),一般c语言书上讲,int是2个字节的,即16位,范围是-32768-32767,long是4个字节,范围是-2^32---2^32-1。当时在xp上运行sizeof(int)的时候,会output 4.这就是32位的原因。sizeof(long)也是4. 如下:#include "stdio.h" #include "string.h" #include "stdlib.h" int main() { short int sa=10; int a=10; long la=10; float f = 20; double d=20; char ch=''c''; char str[]="ABC"; char *p=str; struct str{ double d; char ch; int data; }str_wu; struct str1{ char ch; double d; int data; }str_wu1; printf("sizeof(short):%d\n",sizeof(sa)); printf("sizeof(int):%d\n",sizeof(a));

If函数用法汇总

If函数用法汇总 EXCEL中IF函数使用比较频繁,IF函数使用分为四种判断用法,一就是根据单一条件判断得出两种结果,二就是IF函数同时满足多条件得两种结果,三就是IF函数满足多个条件之一得两种结果,四就是IF函数满足多条件得多种结果四种情况。 IF函数的语法格式如下: =IF(logical_test,value_if_true,value_if_fause) =IF(判断条件,条件成立返回结果1,条件不成立返回结果2) 具体用法: 1、IF函数根据单一条件判断得两种结果 如例所示C2=IF(B2>=18,"成年","未成年"),B2>=18就是判断条件,当条件成立时,返回结果“成年”;当条件不成立时,返回结果“未成年”。 2、IF函数同时满足多条件得两种结果 如例所示E2=IF(AND(B2="优",C2="优",D2="优"),"优秀生","非优秀生"),公式表示必须同时满足B2="优",C2="优",D2="优"三个条件,才能得出结果就是“优秀生”否则就就是“非优秀生”,逻辑函数AND(条件1,条件2,条件3)表示要同时满足括号中的多个条件。 3、IF函数满足多个条件之一得两种结果 如例所示,C2=IF(OR(B2="雷",B2="雨",B2="雪"),"阴天","晴天"),IF函数的判断条件就是逻辑函数OR(B2="雷",B2="雨",B2="雪"),OR函数

只需满足B2="雷",B2="雨",B2="雪"三个条件之一,则条件成立,从而IF 函数就能得出结果“阴天”,否则结果就是“晴天”。 4、IF函数满足多条件得多种结果 如例所示,C2=IF(B2<60,"不及格",IF(AND(B2>=60,B2<70),"及格",IF(B2>=90,"优秀","良"))),该公式就是3个IF函数的嵌套使用,该公式表示,当B2<60时,结果就是"不及格";当B2>=60且<70时,结果就是"及格";当B2>90时,结果就是"优秀",其余的就是“良”。整个公式的判断条件就是B2<60,结果1就是“不及格”,结果2就是IF(AND(B2>=60,B2<70),"及格",IF(B2>=90,"优秀","良"))。

相关文档
最新文档