首页 > 其他分享 >基本数据类型的sizeof()

基本数据类型的sizeof()

时间:2022-10-09 21:46:52浏览次数:50  
标签:基本 int 数据类型 long char sizeof 指针

基本数据类型的sizeof

基本类型包括:bool ,char, short, int, long ,long long,float,double
32位编译器
指针都是4位

数据类型大小
bool 1
char 1
short 2
int 4
long 4
long long 8
float 4
double 8

64位编译器
指针都是8位

数据类型大小
bool 1
char 1
short 2
int 4
long 8
long long 8
float 4
double 8
  

2.结构体

结构体的sizeof涉及到字节对齐问题
注意:空结构体(不含数据成员)的sizeof值为1。这个和类是一样的。

struct A  
{  
    char a;  
    int b;  
};  
sizeof(A); //值为8,字节对齐,在char之后会填充3个字节。  
  
struct B
{  
    int b;  
    char a;  
};  
sizeof(B); //值为8,字节对齐,在char之后会填充3个字节。  
  
struct C
{  
};  
sizeof(C); //值为1,空结构体也占内存

3.数组大小

char str[]="abcd";//大小是5,因为后面还有一个'\0',所以要+1
    char *pStr="abcd";//大小是4,32系统,这里pStr是指针
void funA(char a[5])
{
    int len = sizeof(a);// len = 4,这函数里面,a不是数组类型,而是指针,所以大小是4
}
 
void funB(char a[])
{
    int len = sizeof(a);// len = 4,这函数里面,a不是数组类型,而是指针,所以大小是4
}

4.指针

指针是用来记录另一个对象的地址,所以指针的内存大小当然就等于计算机内部地址总线的宽度。
在32位编译器中,一个指针变量的返回值必定是4。
指针变量的sizeof值与指针所指的对象没有任何关系。

char* str="123";
cout<<sizeof(str)<<endl;//4//这里是一个变量的大小
cout<<sizeof(*str)<<endl;//1,这里指的是一个char的大小
char *c[22];
cout<<sizeof(c)<<endl;//88,因为一个指针大小是4,22个指针就是88,所以大小是88
double *d; 
cout<<sizeof(d)<<endl;//4,这里是指针的大小
cout<<sizeof(*d)<<endl;//8,这里是一个double变量的大小
long long **L;
cout<<sizeof(L)<<endl;//4,指针大小
cout<<sizeof(*L)<<endl;//4,指针大小
 cout<<sizeof(**L)<<endl;//8,long long 大小
void (*pf)();//这是一个函数指针
cout<<sizeof(pf)<<endl;//4,指针大小

 

标签:基本,int,数据类型,long,char,sizeof,指针
From: https://www.cnblogs.com/kuailest/p/16773786.html

相关文章

  • 文件相关知识点及函数基本知识点
    文件相关知识点及函数基本知识点目录文件相关知识点及函数基本知识点一、文件读写总概括二、计算机硬盘修改数据的原理(了解)三、文件内容修改(了解)四、函数简介五、函数语法......
  • 文件操作及函数基本知识
    文件操作利用python代码的编写来读写文件1.文件的概念就是操作系统暴露给用户操作硬盘的快捷方式eg:双击一个文件其实是从硬盘将数据加载到内存ctrl+s保存文件其实......
  • @Redis数据类型及应用场景
    一、Redis与Memcached的区别1、Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,zset,hash等数据结构的存储。2、Redis支持数据的备份,即master-slave模式的数据......
  • C++数据类型
    目录 ​​1.数据类型概述​​​​2.基本的内置类型​​​​整型​​​​实型(浮点型)​​​​字符型​​​​转义字符​​​​字符串型​​​​c风格的字符串​​​​c++风......
  • Java基础001:数据类型及扩展
    Java的数据类型分为两大类基本类型(primitivetype)数值类型整数类型byte占1个字节范围:-128-127short占2个字节范围:-32768-32767int占4个字节范围:-2147483648-......
  • 国庆学go,完成了博客基本功能,迫不及待的发布上线了
    大家好,我是沙漠尽头的狼。国庆7天,利用带娃之余的空闲时间学习了go,并做了一个不是很完善的博客前台网站。网站发布地址:​​https://go.dotnet9.com​​源码边做边上传Github,......
  • Java基本语法 for循环
    for循环虽然所有循环结构都可以用while或者do...while表示,但Java提供了另一种语句——for循环,使一些循环结构变得更加简单。for循环执行的次数是在执行前就确定......
  • 7. JS数据类型(基本数据类型+引用类型)
    1.前言数据类型指的是可以在程序中存储和操作的值的类型,每种编程语言都有其支持的数据类型,不同的数据类型用来存储不同的数据,例如文本、数值、图像等。JavaScript是一种......
  • Cookie——基本使用
    Cookie基本使用    Cookie原理Cookie使用细节......
  • Qt最基本的布局,创建window界面
    #include"mainwindow.h"#include<QMenuBar>#include<QToolBar>#include<QStatusBar>#include<QLabel>#include<QDockWidget>#include<QTextEdit>MainWindow::MainWin......