sizeof的用法详解

这篇具有很好参考价值的文章主要介绍了sizeof的用法详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

定义

sizeof是C语言和C++的关键字和操作符,sizeof 不是操纵符,也不是函数,因为在运行阶段没有它,它没有被编译成机器指令。它的作是用来计算变量(或数据类型)在当前系统中占用内存的字节数。sizeof 运算符可用于获取类、结构、共用体和其他用户自定义数据类型的大小。

sizeof语法

sizeof有三种语法形式:

  1. sizeof (object);  //sizeof (对象)
  2. sizeof object;   //sizeof 对象
  3. sizeof (数组)   
  4. sizeof (type_name);  //sizeof (类型)

对象可以是各种类型的变量,以及表达式(一般sizeof不会对表达式进行计算)。

sizeof对对象要求内存大小,最终都是转换为对对象的数据类型进行求值。

sizeof (表达式); //值为表达式最终结果的数据类型的大小

代码样例

#include<bits/stdc++.h> 
using namespace std;
int main(){
	char c;
	int str[]={4,6,9,3,2,9,3,5,7},n;
	n=sizeof(c);//求对象的大小
	cout<<n<<endl;
	n=sizeof c;
	cout<<n<<endl; 
	n=sizeof(str);//求数组的大小 
	cout<<n<<endl;
	n=sizeof str;
	cout<<n<<endl;
	n=sizeof(3+1.265);//求表达式的大小 
	cout<<n<<endl;
	return 0; 
} 

输出结果

sizeof,c++,算法,数据结构

 sizeof在数组中的运用

当sizeof作用于数组时,求取的是数组所有元素所占用的大小也就是数组所占用的内存字节数。

注意

用sizeof计算数组的大小时,不管数组中是否存在数据,sizeof都是根据数组的大小进行计算数组所占的空间大小,而不是根据数组内的数据的个数。

同时需要注意的是如果想要知道数组内数据的个数时,用数组空间的大小除一个数据的大小,sizeof(数组名) / sizeof(数组元素)

代码样例

#include<bits/stdc++.h> 
using namespace std;
int main(){
	int str[10]={1,5,6,3,9},n; 
	cout<<"数组所占的空间大小:"<<endl;
    n=sizeof(str);
    cout<<n<<endl;
	cout<<"数组中能容纳的数据个数:"<<endl;
	n=sizeof(str)/sizeof(str[0]);
	cout<<n<<endl;
	return 0; 
} 

输出结果

数组所占的空间大小:
40
数组中能容纳的数据个数:
10

字符数组的大小不用sizeof计算,一般都是用strlen计算。

关于sizeof关键字的介绍就到这,希望对各位有帮助,谢谢大家。文章来源地址https://www.toymoban.com/news/detail-802539.html

到了这里,关于sizeof的用法详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • sizeof的用法详解

    sizeof是C语言和C++的和操作符,sizeof 不是操纵符,也不是函数,因为在运行阶段没有它,它没有被编译成机器指令。它的作是用来计算变量(或数据类型)在当前系统中占用内存的字节数。sizeof 运算符可用于获取类、结构、共用体和其他用户自定义数据类型的大小。

    2024年01月18日
    浏览(35)
  • [数据结构] 串与KMP算法详解

    今天是农历大年初三,祝大家新年快乐! 尽管新旧交替只是一个瞬间,在大家互祝新年快乐的瞬间,在时钟倒计时数到零的瞬间,在烟花在黑色幕布绽放的瞬间,在心底默默许下愿望的瞬间……跨入新的一年,并不意味了一切都会朝着更美好,也没有什么会从天而降,我们赋

    2024年02月19日
    浏览(41)
  • 【算法与数据结构】栈的实现详解

    栈的概念: 栈 :一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端 称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。 压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。 出栈:

    2024年03月11日
    浏览(55)
  • 【算法与数据结构】队列的实现详解

    队列的概念: 队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(First In First Out) 新添加的元素添加到队尾,只能从队头取出元素。 入队列:进行插入操作的一端称为队尾 出队列:进行删除操作的一端称为队头 队列特征如

    2024年04月13日
    浏览(42)
  • 【数据结构与算法】图(Graph)【详解】

    【知识框架】 在线性表中,数据元素之间是被串起来的,仅有线性关系,每个数据元素只有一个直接前驱和一个直接后继。在树形结构中,数据元素之间有着明显的层次关系,并且每一层上的数据元素可能和下一层中多个元素相关,但只能和上一层中一个元素相关。图是一种

    2024年02月02日
    浏览(45)
  • 数据结构与算法之《二叉树》详解

    文章目录 一、树的概念及结构 二、二叉树的概念及结构 2、1 二叉树的概念 2、2 二叉树的特点 2、3 二叉树的结构(图片) 2、4 特殊的二叉树 三、二叉树的代码及思路实现 3、1 二叉树的存储结构 3、1、1 二叉树的顺序存储结构 3、1、2 二叉树的链式存储结构 3、2 二叉树链式

    2024年02月01日
    浏览(45)
  • 【数据结构与算法】查找(Search)【详解】

    【知识框架】 查找(Searching) :就是根据给定的某个值,在查找表中确定一个其等于给定值的数据元素( 或记录)。 查找表(Search Table) :是由同一类型的数据元素(或记录)构成的集合。 (Key):数据元素中唯一标识该元素的某个数据项的值,使用基于的查找,查

    2024年02月02日
    浏览(49)
  • 算法与数据结构 第六章 图(详解)

    目录 一、判断题 二、选择题  在开始之前,先为大家推荐四篇介绍该章四个主要算法的的文章,供大家参考。 Dijkstra算法求最短路径:Dijkstra算法原理_平凡的L同学的博客-CSDN博客_dijiesitela Floyd算法求最短路径:Floyd算法求最短路径 Prim算法求最小生成树:Prim算法求最小生成树

    2024年02月09日
    浏览(47)
  • 数据结构与算法——顺序表(顺序存储结构)及初始化详解

    顺序表 ,全名 顺序存储结构 ,是线性表的一种。通过《什么是线性表》一节的学习我们知道,线性表用于存储逻辑关系为“一对一”的数据,顺序表自然也不例外。 不仅如此,顺序表对数据的物理存储结构也有要求。 顺序表存储数据时,会提前申请一整块足够大小的物理

    2024年02月16日
    浏览(41)
  • 【数据结构】二叉树的遍历递归算法详解

    我们来写一个函数 BuyNode(x)函数 用于创建二叉树结点。 用动态开辟函数 malloc 函数进行动态开辟,并强制转换为 BTNode 型,用变量 node 来去管理开辟的空间。 我们初始化结点,其 val 即为传入的参数x,左右指针 left 和 right 都设为NULL。 我们在主函数中创建上面这样一颗二叉树

    2024年01月20日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包