当前位置: 首页 > 编程笔记 >

C语言实现 数据类型占多少字节指针占多少字节

窦涵忍
2023-03-14
本文向大家介绍C语言实现 数据类型占多少字节指针占多少字节,包括了C语言实现 数据类型占多少字节指针占多少字节的使用技巧和注意事项,需要的朋友参考一下

具体代码如下所示:

#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),或者我可以使用缓冲区