具体代码如下所示:
#include<stdio.h> void main() { //使用sizeof验证数据类型在内存中占用的空间大小 // char // int // short // long // unsigned int // float // double // long double printf("在64位机器中:\n"); printf(" char类型占%d个字节\n",sizeof(char)); printf(" short类型占%d个字节\n",sizeof(short)); printf(" int类型占%d个字节\n",sizeof(int)); printf(" long类型占%d个字节\n",sizeof(long)); printf("unsigned int类型占%d个字节\n",sizeof(unsigned int)); printf(" float类型占%d个字节\n",sizeof(float)); printf(" double类型占%d个字节\n",sizeof(double)); printf(" long double类型占%d个字节\n",sizeof(long double)); printf("-------------------指针占4个字节---------------------\n"); char *p0; short *p1; int *p2; long *p3; unsigned int *p4; float *p5; double *p6; long double *p7; printf(" char类型指针占%d个字节\n",sizeof(p0)); printf(" short类型指针占%d个字节\n",sizeof(p1)); printf(" int类型指针占%d个字节\n",sizeof(p2)); printf(" long类型指针占%d个字节\n",sizeof(p3)); printf("unsigned int类型指针占%d个字节\n",sizeof(p4)); printf(" float类型指针占%d个字节\n",sizeof(p5)); printf(" double类型指针占%d个字节\n",sizeof(p6)); printf(" long double类型指针占%d个字节\n",sizeof(p7)); }
结果:
在64位机器中: char类型占1个字节 short类型占2个字节 int类型占4个字节 long类型占4个字节 unsigned int类型占4个字节 float类型占4个字节 double类型占8个字节 long double类型占12个字节 -------------------指针占4个字节--------------------- char类型指针占4个字节 short类型指针占4个字节 int类型指针占4个字节 long类型指针占4个字节 unsigned int类型指针占4个字节 float类型指针占4个字节 double类型指针占4个字节 long double类型指针占4个字节
知识点扩展:
c语言实现十进制与ASCII码互转
//十进制转ASCII码 //年#define KB2ASC(x) (u8)(0x30+x) //ASCII码转十进制 //年 #define ASC2KB(x) (u8)(x%(0x30))
总结
以上所述是小编给大家介绍的C语言实现 数据类型占多少字节指针占多少字节,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对小牛知识库网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
主要内容:一、 测试,二、对象内存布局,三、Object o = new Object()在内存中占了多少字节,四、User (int idString name) User u = new User(1‘张三’);占用多少字节一、 测试 maven 测试 二、对象内存布局 MarkWord:对象头,8字节。包括了对象的hashCode、对象的分代年龄、锁标志位等。结构如下图所示: 1.hashcode 2.GC标记 3,锁标记位 classPointer:对象指向它的类元素的指针。在不开启对象
多级指针概述 我们将指针变量理解为一个存储地址的变量。如果这个地址里面存储的依然是地址,那么我们就可以定义一个二维指针。通过一个二维指针,我们通过两次寻址操作就可以找到这个值。 比如我们定义一个int **p;这是一个二维指针,当编译器看到p的时候,它知道这是一个指针变量,指向一个地址;当它看到第二个的时候,它知道指向的地址里面依然还是地址。如下图所示: 如果我们将p[0]和p[1]分别指向两个字
在C语言中,我知道我们可以用指针来实现这一点: 甚至: 但我们能做点什么,比如三个指向无限的指针吗?例如。: ...依此类推,直到无穷大。 指针的数量有上限吗?如果是,上限是多少?
多级指针举例 可能很多同学都执行过这个命令,ping www.baidu.com或者是ping www.qq.com,ping是一个命令,后面的网址就是它的传入参数。不同的参数会导致不同的运行结果。 下面就是我们main函数的标准写法,argc就是传入参数的个数,argv是一个字符串类型的二维指针。当我们需要传递下面四个字符串给main函数的时候,这四个是字符串的首地址不是连续的,我们就可以使用二
问题内容: 从服务器以UTF-8发送时,我有一个大约500K的JavaScript字符串。如何用JavaScript判断其大小? 我知道JavaScript使用UCS-2,因此每个字符2个字节。但是,这取决于JavaScript实现吗?还是页面编码或内容类型? 问题答案: 值不依赖于实现,根据ECMA-262第三版规范,每个字符代表_UTF-16文本_ 的 单个16位单元 : 4.3.16字符串值
这更像是一个良心问题,而不是一个技术问题:p我正在编写一些java代码来从服务器下载文件。。。为此,我使用了BufferedOutputStream方法write()和BufferedInputStream方法read()。 所以我的问题是,如果我使用缓冲区来保存字节,那么要读取的字节数应该是多少?当然,我可以使用int byte=read()逐字节读取,然后写入(byte),或者我可以使用缓冲区