BOOL使用前需要声明
#include <stdbool.h>(这个头文件定义了bool,true,false等宏)
int a[5];
sizeof(a[5]),sizeof是关键字,求值是在编译时,sizeof(a[5])并不会报错,这个值并不存在,但是这里并没有真正去访问a[5]这个值,而是仅仅根据数组元素的类型来确定其值。
sizeof(变量\常量)
sizeof 变量\常量
sizeof(数据类型)
sizeof 数据类型——错误
 
*sizeof的作用

sizeof是c的运算符之一,用于获取操作数被分配的内存空间,以字节单位表示.

这里指的操作数,可以是变量,也可以是数据类型,如int,float等.所以就可以通过它来获取本地c库定义的基本类型的范围。

*sizeof的使用

1.对于一般变量,形式2种:sizeof a 或 sizeof(a);

2.对于数据类型,必须使用带括号的方式,如sizeof(int).

*size_t的说明

sizeof返回的必定是无符号整形,在标准c中通过typedef将返回值类型定义为size_t(即unsigned int,头文件stddef.h中定义)
strlen返回的也是无符号整形。
若用printf输出size_t类型时,C99中定义格式符%zd;若编译器不支持可以尝试%u或%lu/%zd.

*与strlen比较

sizeof,获取操作数占用的内存空间字节数,返回类型size_t;

strlen,获取字符数组实际使用的字节数,不包含数组结尾符'\0',返回类型size_t;

如示:

#include <stdio.h> 
#include <string.h> 
int main(void) 
{    
     int a =1;  
     char b[4] ="aaa"; 
     printf("%zd %zd %lu\n",sizeof a,sizeof(int),sizeof a); 
     printf("%zd %zd\n",sizeof b,strlen(b)); 
     return 0; 
}

结果:

4 4 4 
4 3
 

BOOL、sizeof的更多相关文章

  1. (三)结构体指针、sizeof

    (一)结构体指针定义 今天上班写了一段测试代码,结果在linux下编译出现段错误,刚开始一直找不到原因,后来找了度娘才搞懂了.我先贴出来第一次写的代码以及gcc编译器下报的错误: #include&l ...

  2. lambda表达式Expression<Func<Person, bool>> 、Func<Person, bool>区别

    前言: 自己通过lambda表达式的封装,将对应的表达式转成字符串的过程中,对lambda表达式有了新的认识 原因: 很多开发者对lambda表达式Expression<Func<Pers ...

  3. Python基础 之 int、bool、str、列表、元组、字典

    数据类型 数据类型划分:可变数据类型     不可变数据类型 不可变数据类型:元组.bool.int (本身不可更改).str      (可哈希) 可变数据类型:列表list.字典dict   .集 ...

  4. 程序员之---C语言细节24(段错误、类型提升、sizeof &#39;A&#39;)

    主要内容:段错误.类型提升.sizeof  'A' #include <stdio.h> int main() { union test{ char a[10]; int b; }u; i ...

  5. python基础一整型、bool、字符串

    1整型.bool.字符串 1.整型 --数字(int) ​ 用于比较运算的 ​ 32位 -2 ** 31 ~ 2 ** 31 -1 ​ 64位 -2 ** 63 ~ 2 ** 63 -1 ​ 基础运算 ...

  6. C# 中的 bool、char 和 string 类型

    上一篇(地址:https://www.vinanysoft.com/c-sharp-basics/data-types/fundamental-numeric-types/)只介绍了基本数值类型,本篇 ...

  7. 编程基础-c语言中指针、sizeof用法总结

    1.指针 学习 C 语言的指针既简单又有趣.通过指针,可以简化一些 C 编程任务的执行,还有一些任务,如动态内存分配,没有指针是无法执行的.所以,想要成为一名优秀的 C 程序员,学习指针是很有必要的. ...

  8. C++ bool、三目运算符、引用

    bool变量: C++相对于C语言加入了bool变量,其值为true(1) 和 false(0).true表示不为零的数  false表示为零的数,占用一个字节的空间. 代码: /* 编译环境  gc ...

  9. Objective-C(NSString、BOOL、多文件开发)

    NSString 表示oc当中的字符串类 %@是oc当中对象的格式符 printf不能打印oc当中的对象 通过stringWithFormat:这个类方法,打印格式化的字符串 例 int a = 10 ...

随机推荐

  1. ER图与UML图

    ER图:实体-联系图(Entity-Relation Diagram)用来建立数据模型,在数据库系统概论中属于概念设计阶段,ER图提供了表示实体(即数据对象).属性和联系的方法,用来描述现实世界的概念 ...

  2. MJExtension

    MJExtension 长话短说下面我们通过一个列子来看下怎么使用 1. 先把框架拉进去你的项目 2. 首先我这次用到的json最外层是一个字典,根据数据的模型我们可以把这个归类为字典中有数组,数组中 ...

  3. start.sh

    JAVA_OPTS=" -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true "JAVA_MEM_OPTS=" ...

  4. php7 不向后的兼容的变更

    php7 不向后的兼容的变更 在php7中,很多致命错误以及可恢复的致命错误,都被转换为异常来处理了. 这些异常继承自Error类,此类实现了Throwable接口(所有异常都实现了这个基础接口) 这 ...

  5. js解决click事件点击事件间隔方法

    var myTimeout = null; $("#id").click(function(){ clearTimeout(myTimeout); myTimeout = setT ...

  6. nodejs 文件查找中文,替换为英文

    帮以前同事解决一个需求,中文项目 翻译 英文项目~~~ 考虑到具体实现方面的问题,如果智能的话,肯定是要做中文的语法分析,不过感觉这个有难度. 所以最后的方案是遍历文件,将中文短语匹配出来,再进行人工 ...

  7. Nodejs学习笔记——Assert(断言)

    Assert - a:actual e:expected m:message o:operator v:value b:block assert.fail(a, e, m, o) assert(v, ...

  8. 九度OnlineJudge之1021:统计字符

    题目描述:     统计一个给定字符串中指定的字符出现的次数. 输入:     测试输入包含若干测试用例,每个测试用例包含2行,第1行为一个长度不超过5的字符串,第2行为一个长度不超过80的字符串.注 ...

  9. CCNA实验(1) -- 基本配置

    Ctrl+A: 到行首(Ahead)Ctrl+E: 到行尾(End)Esc+B: 回退一个单词(Back)Esc+F: 前进一个单词(Forward) 1.三种配置模式2.时间时区配置3.设置超时时间 ...

  10. POJ1961Period

    POJ1961 #include<iostream> #include<cstdio> #include<cstring> using namespace std; ...