sizeof是关键字吗

sizeof是关键字,这一点毋庸置疑。你不能将sizeof定义为任何标识符。查看C语言标准文档里的说明:

sizeof是运算符(操作符)吗

C语言中,sizeof是运算符(操作符),而且是唯一一个以单词形式出现的运算符,它用来计算存放某一个量需要占用多少字节,它的结合性是从右到左。查看C语言标准文档里的说明:

sizeof是函数吗

sizeof不是函数。产生这样的疑问主要是因为有时候sizeof的外在表现确实有点类似函数,比如:i = sizeof(int);这样的式子,就很容易让人误以为sizeof是一个函数呢。但如果sizeof是函数,那么sizeof i;(假设i为int变量)这种式子一定不能成立,因为函数的参数不可能不用括号括起来。事实上这个sizeof i;可以正常运行,这就说明sizeof绝对不是函数。

sizeof用法

sizeof顶着关键字的光环,发挥着(单目)运算符的作用。它主要用来计算某一个量在当前系统中所需占用的字节数

常用类型大小测试:

普通变量大小测试:

常量大小测试:

:计算sizeof('A');时,在C语言中这会发生隐式类型转换,将字符'A'转换为整型,但在C++中不会转换,sizeof('A')的值仍为1。

一维数组大小测试:

多维数组大小测试:

指针大小测试:

字符串大小测试:

小结

对语法存疑时,多查资料,以官方标准文档为准,并上机测试。

sizeof既是关键字,又是运算符(操作符),但不是函数!的更多相关文章

  1. 电脑快捷键与JAVA关键字、运算符

    电脑快捷键: Alt+ESC切换到上一个操作的窗口 Alt+F4关闭当前窗口 Print Screen截取当前全屏幕到剪切板 Alt+Print Screen截取当前窗口到剪切板 Alt+Shift在 ...

  2. C语言常用关键字及运算符操作---关键字

    每个知识点4问: 1. 是什么? 2. 什么时间用? 3. 怎么用? 4.为什么这么用? 1. 32个关键字 //(1)sizeof 的用法 //sizeof 是关键字,让编译器帮我们查看内存空间存储 ...

  3. 【Java】Operator 运算符/操作符

    Operator 运算符/操作符 什么是操作符? 一个表示特定的数学或逻辑操作的符号 算术运算符 加 + 减 - 乘 * 除 / 取模 % 前置自运算 ++ a .--b 后置自运算 a++ .b-- ...

  4. Linux基础-shell脚本知识整理和脚本编写----------变量、运算符、流程控制、函数、计划任务(发送邮件)

    I:知识整理:变量.运算符.流程控制.函数.计划任务 变量 系统变量:set:显示所有变量                env:环境变量 常用系统变量: path pwd lang home his ...

  5. [C++基础] 变量、关键字、运算符、位操作篇

    一.变量篇 1 全局变量和静态变量有什么异同? 相同:都在静态存储区分配空间,生命周期与程序生命周期相同. 区别:全局变量的作用域是整个程序,它只需要在一个源文件中定义,就可以作用于所有的源文件.而静 ...

  6. C语言的关键字,运算符,标识符

    关键字 数据类型修饰相关 auto按照自动的方式进行变量的存储 const定义常量或常参数 extern声明外部变量或函数 register指定变量的存储类型是寄存器变量 static指定变量的存储类 ...

  7. C++ operator关键字(重载操作符)(转)

    operator是C++的关键字,它和运算符一起使用,表示一个运算符函数,理解时应将operator=整体上视为一个函数名. 这是C++扩展运算符功能的方法,虽然样子古怪,但也可以理解:一方面要使运算 ...

  8. C++中operator关键字(重载操作符)

    operator是C++的关键字,它和运算符一起使用,表示一个运算符函数,理解时应将operator=整体上视为一个函数名. 这是C++扩展运算符功能的方法,虽然样子古怪,但也可以理解:一方面要使运算 ...

  9. 4.GDscript(2)关键字,运算符,字面量

    (来源godot官方文档) 关键词 下面是该语言支持的关键字列表.由于关键字是保留字(令牌),它们不能用作标识符.操作符(如 in , not , and 或 or )以及下面列出的内置类型的名称也是 ...

随机推荐

  1. 《Linux内核设计与实现》CHAPTER5阅读梳理

    <Linux内核设计与实现>CHAPTER5阅读梳理 [学习时间:2.5hours] [学习内容:系统调用的概念.功能及实现:系统调用的创建和使用方法] CHAPTER5 系统调用 1.系 ...

  2. Oracle SQL基本操作

    Oracle数据库基本操作 1.概述 Oracle数据库客户端一般需要安装在服务器上,可以在服务器端操作,一般我们可以用sql developer工具远程连接到数据库,先行建立数据库,然后对表进行增删 ...

  3. jenkins创建job不能用中文问题

    Your Container doesn't use UTF-8 to decode URLs. If you use non-ASCII characters as a job name etc,  ...

  4. Python之路-python(面向对象进阶(模块的动态导入、断言、Socket Server))

    模块的动态导入 断言 Socket Server 一.模块的动态导入 class C(object): def __init__(self): self.name = "zhangsan&q ...

  5. lua MVC框架 Orbit初探

    介绍 http://keplerproject.github.io/orbit/ Orbit是lua语言版本的MVC框架. 此框架完全抛弃CGILUA的脚本模型, 支持的应用, 每个应用可以卸载一个单 ...

  6. (转载)移动WEB前端开发资源整合

    收藏起来,感谢原文大大:Bon~~~ 原文链接:http://www.ccwebsite.com/development-of-resource-integration-in-mobile-termi ...

  7. 20145320 《Java程序设计》第七周学习总结

    20145320 <Java程序设计>第七周学习总结 教材学习内容总结 13章 时间与日期 时间的度量: 格林威治标准时间(GMT时间),现已不作为标准时间使用. 世界时(UT),秒的单位 ...

  8. matlab中动态绘图并保存为视频的小例子

    如题,多的就不说了,先上一个效果: 每隔0.1秒,绿色的直线转动一个角度. 再看看代码如何实现: fuction main clear; clc; %%%%%%%%%%%%%%%%%%%%%%%%%% ...

  9. C/C++ 结构体 简单输入输出

    #include <stdio.h> #include <stdlib.h> struct student{ int num; ]; double dec; }; int ma ...

  10. 【转】PowerShell入门(序):为什么需要PowerShell?

    转至:http://www.cnblogs.com/ceachy/archive/2013/01/23/PowerShellPreface.html 曾几何时,微软的服务器操作系统因为缺乏一个强大的S ...