精华内容
下载资源
问答
  • C语言变量类型字节数

    2019-06-21 23:46:30
    32位编译器: charshort int long float double指针 1244484 64位编译器: charshort int lon...

    32位编译器:

    char      short      int      long      float      double      指针

       1            2           4         4            4              8            4

    64位编译器:

    char      short      int      long      float      double      指针

       1            2           4         8            4              8            8

    展开全文
  • 数据类型 字节 char 1 int 4 short int 2 long int 4 unsigned int 4 unsigned short int 2 unsigned long int 4 float 4 double 8 long double 16
    数据类型 字节
    char 1
    int 4
    short int 2
    long int 4
    unsigned int 4
    unsigned short int 2
    unsigned long int 4
    float 4
    double 8
    long double 16
    展开全文
  • 一、 C语言基本数据类型 short、int、long、char、float、double 这六个关键字代表C 语言里的六种基本数据类型。 在不同的系统上,这些类型占据的字节长度是不同的: **16位编译器: char/unsigned char :1字节 ...

    一、 C语言基本数据类型

    short、int、long、char、float、double 这六个关键字代表C 语言里的六种基本数据类型。

    在不同的系统上,这些类型占据的字节长度是不同的:
    **16位编译器:

    char/unsigned char :1字节
    char :2字节
    short int:2字节
    int/unsigned int:2字节
    long int:4字节
    float:4字节
    double:8字节
    *

    32位编译器:

    *char/unsigned char :1字节
    char :4字节
    short int:2字节
    int/unsigned int:4字节
    long int:4字节
    float:4字节
    double:8字节
    long long:8字节
    long double:12字节

    64位编译器:
    char/unsigned char :1字节
    char *:8字节
    short int:2字节
    int/unsigned int:4字节
    long int:8字节
    float:4字节
    double:8字节
    long long:8字节
    long double:16字节
    具体可以用
    sizeof测试一下即可

    在这里插入图片描述

    二 变量的命名规则
    1、命名应当直观且可以拼读,可望文知意,便于记忆和阅读。
    标识符最好采用英文单词或其组合,不允许使用拼音。程序中的英文单词一般不要太复杂,用词应当准确。

    2、命名的长度应当符合“min-length && max-information”原则。C 是一种简洁的语言, 命名也应该是简洁的。例如变量名MaxVal 就比MaxValueUntilOverflow 好用。标识符的长度一般不要过长,较长的单词可通过去掉“元音”形成缩写。
    另外,英文词尽量不缩写,特别是非常用专业名词,如果有缩写,在同一系统中对同一单词必须使用相同的表示法,并且注明其意思。

    3、当标识符由多个词组成时,每个词的第一个字母大写,其余全部小写。比如:
    int CurrentVal;这样的名字看起来比较清晰,远比一长串字符好得多。

    4、尽量避免名字中出现数字编号,如Value1,Value2 等,除非逻辑上的确需要编号。比如驱动开发时为管脚命名,非编号名字反而不好。初学者总是喜欢用带编号的变量名或函数名,这样子看上去很简单方便,但其实是一颗颗定时炸弹。这个习惯初学者一定要改过来。

    5、对在多个文件之间共同使用的全局变量或函数要加范围限定符(建议使用模块名(缩写)作为范围限定符),如 GUI_ ,etc标识符的命名规则

    6、标识符名分为两部分:规范标识符前缀(后缀) + 含义标识。非全局变量可以不用使用范围限定符前缀。

    7、作用域前缀命名规则。

    8、数据类型前缀命名规则。

    9、含义标识命名规则,变量命名使用名词性词组,函数命名使用动词性词组。例如:

    变量含义标识符构成:目标词+ 动词(的过去分词)+ [状语] + [目的地];
    函数含义标识符构成:动词(一般现时)+目标词+[状语]+[目的地];

    10、程序中不得出现仅靠大小写区分的相似的标识符。例如:
    int x, X; 变量x 与X 容易混淆
    void foo(int x); 函数foo 与FOO 容易混淆
    void FOO(float x);
    这里还有一个要特别注意的就是1(数字1)和l(小写字母l)之间,0(数字0)和o(小写字母o)之间的区别。这两对真是很难区分的,我曾经的一个同事就被这个问题折腾了一次。

    11、一个函数名禁止被用于其它之处。例如:
    #include “c_standards.h”
    void foo(int p_1)
    {
    int x = p_1;
    }
    void static_p(void)
    {
    int foo = 1u;
    }

    12、所有宏定义、枚举常数、只读变量全用大写字母命名,用下划线分割单词。例如:
    const int MAX_LENGTH = 100; //这不是常量,而是一个只读变量,具体请往后看
    #define FILE_PATH “/usr/tmp”

    13、考虑到习惯性问题,局部变量中可采用通用的命名方式,仅限于n、i、j 等作为循环变量使用。
    一定不要写出如下这样的代码:
    int p;
    char i;
    int c;
    char * a;
    一般来说习惯上用n,m,i,j,k 等表示int 类型的变量;c,ch 等表示字符类型变量;a 等表示数组;p 等表示指针。当然这仅仅是一般习惯,除了i,j,k 等可以用来表示循环变量外,别的字符变量名尽量不要使用。
    14、定义变量的同时千万千万别忘了初始化。定义变量时编译器并不一定清空了这块内存,它的值可能是无效的数据。这个问题在内存管理会有非常详细的讨论。
    15、不同类型数据之间的运算要注意精度扩展问题,一般低精度数据将向高精度数据扩展。

    展开全文
  • C语言常见类型占用字节数

    千次阅读 2018-09-15 23:53:46
    整数是编程中常用的一种数据,C语言通常使用int来定义整数(int 是 integer 的简写),这在《大话C语言变量和数据类型》中已经进行了详细讲解。 在现代操作系统中,int 一般占用 4 个字节(Byte)的内存,共计 32 ...

    整数是编程中常用的一种数据,C语言通常使用int来定义整数(int 是 integer 的简写),这在《大话C语言变量和数据类型》中已经进行了详细讲解。

    在现代操作系统中,int 一般占用 4 个字节(Byte)的内存,共计 32 位(Bit)。如果不考虑正负数,当所有的位都为 1 时它的值最大,为 232-1 = 4,294,967,295 ≈ 43亿,这是一个很大的数,实际开发中很少用到,而诸如 1、99、12098 等较小的数使用频率反而较高。

    使用 4 个字节保存较小的整数绰绰有余,会空闲出两三个字节来,这些字节就白白浪费掉了,不能再被其他数据使用。现在个人电脑的内存都比较大了,配置低的也有 2G,浪费一些内存不会带来明显的损失;而在C语言被发明的早期,或者在单片机和嵌入式系统中,内存都是非常稀缺的资源,所有的程序都在尽力节省内存。

    反过来说,43 亿虽然已经很大,但要表示全球人口数量还是不够,必须要让整数占用更多的内存,才能表示更大的值,比如占用 6 个字节或者 8 个字节。

    让整数占用更少的内存可以在 int 前边加 short,让整数占用更多的内存可以在 int 前边加 long,例如:

    short int a = 10;
    short int b, c = 99;
    long int m = 102023;
    long int n, p = 562131;

    这样 a、b、c 只占用 2 个字节的内存,而 m、n、p 可能会占用 8 个字节的内存。

    也可以将 int 省略,只写 short 和 long,如下所示:

    short a = 10;
    short b, c = 99;
    long m = 102023;
    long n, p = 562131;

    这样的写法更加简洁,实际开发中常用。

    int 是基本的整数类型,short 和 long 是在 int 的基础上进行的扩展,short 可以节省内存,long 可以容纳更大的值。

    short、int、long 是C语言中常见的整数类型,其中 int 称为整型,short 称为短整型,long 称为长整型。

    整型的长度

    细心的读者可能会发现,上面我们在描述 short、int、long 类型的长度时,只对 short 使用肯定的说法,而对 int、long 使用了“一般”或者“可能”等不确定的说法。这种描述的言外之意是,只有 short 的长度是确定的,是两个字节,而 int 和 long 的长度无法确定,在不同的环境下有不同的表现。

    一种数据类型占用的字节数,称为该数据类型的长度。例如,short 占用 2 个字节的内存,那么它的长度就是 2。

    实际情况也确实如此,C语言并没有严格规定 short、int、long 的长度,只做了宽泛的限制:

    • short 至少占用 2 个字节。
    • int 建议为一个机器字长。32 位环境下机器字长为 4 字节,64 位环境下机器字长为 8 字节。
    • short 的长度不能大于 int,long 的长度不能小于 int。


    总结起来,它们的长度(所占字节数)关系为:

    2 ≤ short ≤ int ≤ long

    这就意味着,short 并不一定真的”短“,long 也并不一定真的”长“,它们有可能和 int 占用相同的字节数。

    在 16 位环境下,short 的长度为 2 个字节,int 也为 2 个字节,long 为 4 个字节。16 位环境多用于单片机和低级嵌入式系统,在PC和服务器上已经见不到了。

    对于 32 位的 Windows、Linux 和 Mac OS,short 的长度为 2 个字节,int 为 4 个字节,long 也为 4 个字节。PC和服务器上的 32 位系统占有率也在慢慢下降,嵌入式系统使用 32 位越来越多。

    在 64 位环境下,不同的操作系统会有不同的结果,如下所示:

    操作系统 short int long
    Win64(64位 Windows) 2 4 4
    类Unix系统(包括 Unix、Linux、Mac OS、BSD、Solaris 等) 2 4 8


    目前我们使用较多的PC系统为 Win XP、Win 7、Win 8、Win 10、Mac OS、Linux,在这些系统中,short 和 int 的长度都是固定的,分别为 2 和 4,大家可以放心使用,只有 long 的长度在 Win64 和类 Unix 系统下会有所不同,使用时要注意移植性。

    sizeof 操作符

    获取某个数据类型的长度可以使用 sizeof 操作符,如下所示:

    
     
    1. #include <stdio.h>
    2. int main()
    3. {
    4. short a = 10;
    5. int b = 100;
    6.  
    7. int short_length = sizeof a;
    8. int int_length = sizeof(b);
    9. int long_length = sizeof(long);
    10. int char_length = sizeof(char);
    11.  
    12. printf("short=%d, int=%d, long=%d, char=%d\n", short_length, int_length, long_length, char_length);
    13.  
    14. return 0;
    15. }

    在 32 位环境以及 Win64 环境下的运行结果为:

    short=2, int=4, long=4, char=1

    在 64 位 Linux 和 Mac OS 下的运行结果为:

    short=2, int=4, long=8, char=1


    sizeof 用来获取某个数据类型或变量所占用的字节数,如果后面跟的是变量名称,那么可以省略( ),如果跟的是数据类型,就必须带上( )

    需要注意的是,sizeof 是C语言中的操作符,不是函数,所以可以不带( ),后面会详细讲解。

    不同整型的输出

    使用不同的格式控制符可以输出不同类型的整数,它们分别是:

    • %hd用来输出 short int 类型,hd 是 short decimal 的简写;
    • %d用来输出 int 类型,d 是 decimal 的简写;
    • %ld用来输出 long int 类型,ld 是 long decimal 的简写。


    下面的例子演示了不同整型的输出:

    
     
    1. #include <stdio.h>
    2. int main()
    3. {
    4. short a = 10;
    5. int b = 100;
    6. long c = 9437;
    7.  
    8. printf("a=%hd, b=%d, c=%ld\n", a, b, c);
    9. return 0;
    10. }

    运行结果:
    a=10, b=100, c=9437

    在编写代码的过程中,我建议将格式控制符和数据类型严格对应起来,养成良好的编程习惯。当然,如果你不严格对应,一般也不会导致错误,例如,很多初学者都使用%d输出所有的整数类型,请看下面的例子:

    
     
    1. #include <stdio.h>
    2. int main()
    3. {
    4. short a = 10;
    5. int b = 100;
    6. long c = 9437;
    7.  
    8. printf("a=%d, b=%d, c=%d\n", a, b, c);
    9. return 0;
    10. }

    运行结果仍然是:
    a=10, b=100, c=9437

    当使用%d输出 short,或者使用%ld输出 short、int 时,不管值有多大,都不会发生错误,因为格式控制符足够容纳这些值。

    当使用%hd输出 int、long,或者使用%d输出 long 时,如果要输出的值比较小(就像上面的情况),一般也不会发生错误,如果要输出的值比较大,就很有可能发生错误,例如:

    
     
    1. #include <stdio.h>
    2. int main()
    3. {
    4. int m = 306587;
    5. long n = 28166459852;
    6. printf("m=%hd, n=%hd\n", m, n);
    7. printf("n=%d\n", n);
    8.  
    9. return 0;
    10. }

    在 64 位 Linux 和 Mac OS 下(long 的长度为 8)的运行结果为:
    m=-21093, n=4556
    n=-1898311220

    输出结果完全是错误的,这是因为%hd容纳不下 m 和 n 的值,%d也容纳不下 n 的值。

    读者需要注意,当格式控制符和数据类型不匹配时,编译器会给出警告,提示程序员可能会存在风险。

    展开全文
  • #include <stdio.h> int main(int argc, char **argv) { printf("sizeof(char) = %d\n", sizeof(char)); printf("sizeof(signed char) = %d\n", sizeof(signed char)); printf("sizeof(unsigned ...
  • 和机器字长及编译器有关系: 所以,int,long int,short int的宽度都可能随编译器而异。但有几条铁定的原则(ANSI/ISO制订的): ...3 short int至少应为16位(2字节) 4 long int至少应为32位。 unsigned 是
  • C语言变量所占字节数整理: 变量的基本类型包括:字符型、整型、长整型、浮点型。 每个变量在每个编译器所占的字节数不同,《the C Programming language》是这样说的: Each compiler is free to choose ...
  • 基本类型字节数

    千次阅读 2019-03-22 15:03:39
    基本类型字节数学习。
  • 手把手C语言入门—C语言基本类型回顾Java的8大基本类型对比Java和C语言中的各种类型C语言基本类型长度查看(代码) 回顾Java的8大基本类型 Java中的基本类型:byte(占1个字节)、short(占2个字节)、int(占4个...
  • 注意!基本整型所占的字节数除了跟操作系统位数有关外,还跟编译器有关,比如说:VC++ int 占据4个四节,但是在 tuborC下则是2个字节
  • 一、程序运行平台  ... 不同的平台上对不同数据类型分配的字节数是不同的。   个人对平台的理解是CPU+OS+Compiler,是因为:   1、64位机器也可以装32位系统(x64装XP);   2、32位机器上可以有1
  •  不同的平台上对不同数据类型分配的字节数是不同的。   个人对平台的理解是CPU+OS+Compiler,是因为:   1、64位机器也可以装32位系统(x64装XP);   2、32位机器上可以有16/32位的编译器(...
  • C语言的数据类型以及各数据类型字节数
  • C语言基本类型: 整型(int):4 字节 取值:-231 ~ (231 - 1) 短整型(short):2 字节 取值 :-215 ~ (215 - 1) 长整型(long):4 字节 取值:-231 ~ (231 - 1) 浮点型 单精度型(float):4 字节 7~8...
  • 补充说明:4字节:int(%d),unsigned=unsigned int(%u),long=long int(%ld),unsigned long(%lu),float(%f)8字节:double(%lf),unsigned long long(%llu),long long=long long int(%lld)12字节:long double(%...
  • 32位编译器中各基本类型所占字节数: 注:对于32位的编译器,指针变量的大小都是4个字节,也就是32位。原因是32位的寻址空间,也就是每个存储单元的地址都是32位的。指针变量中存储的正好也就是这个32位的地址,...
  • c语言基本类型 整型int 长整型long 单精度型float 双精度型double 字符类型char 空类型void 二 各个类型所占字节数 使用sizeof()函数测试一下。下面给出我编译环境、 测试代码和测试结果: #include<stdio.h...
  • C语言中几种类型所占字节数

    万次阅读 多人点赞 2017-06-07 17:09:25
    其实C标准并没有具体给出规定哪个基本类型应该是多少个字节数,而且这个也与OS、编译器有关,比如同样是在32位操作系统,VC++的编译器下int类型为4个字节,而在tuborC下则是2个字节。 下面给出一个表格,方便查看个...
  • C语言(一)基本数据类型字节统计

    千次阅读 2018-03-19 10:36:52
    sizeof()——C语言运算符,可用来测试当前环境中变量在内存中所占的字节数。  sizeof()是操作符,不是函数;sizeof测量的实体大小为编译期间就已确定 #include &lt;stdlib.h&gt; #include &lt;...
  • C语言基本数据类型

    多人点赞 2019-04-15 17:23:25
    C语言基本数据类型有以下几个: 1:短整型 short 2:长整形 long long 3:整形 int 4:单精度浮点型 float 5:双精度浮点型 double 6:字符型 char 这些都是C语言当中最基本的关键字,每种类型都有一定的长度范围: ...
  • C语言数据类型占用字节大小

    万次阅读 多人点赞 2018-03-16 09:51:54
    在昨天的笔试的时候碰到了一个关于不同的数据类型占用字节大小的问题,于是就想归纳整理一下关于这方面的问题。于是就写了一下,在Linux系统下用gcc编译验证了一下,以供参考。16位编译器:char/unsigned char :1...
  • C语言基本类型与其数据存储方式

    千次阅读 2017-11-24 23:37:16
    好久没有更新博客了,最近对逆向十分...看下图,C语言数据类型分为右边四大类型,这篇博客重点讲基本类型,因为其他类型还没学呢~~ 整数类型 数据类型分为 char short int long 四种 char 8BIT 1字节 -----宽度...
  • char :1个字节 short int : 2个字节 int: 4个字节 unsigned int : 4个字节 float: 4个字节 double: 8个字节 long: 4个字节 long long: 8个字节 unsigned long: 4个字节char*(即指针变量): 4个字节(32位...
  • 数据类型的长度跟编译器和系统有关,比如在windows下的32位编译器下的数据类型字节数: char :1个字节 char*(即指针变量):4个字节(32位的寻址空间是2^32,即32个bit,也就是4个字节。) short int : 2个字节 ...
  • char*(即指针变量): 4个字节(32位的寻址空间是2^32, 即32个bit,也就是4个字节。同理64位编译器) short int : 2个字节 int: 4个字节 unsigned int : 4个字节 float: 4个字节 double: 8个字节 long: 4个字节 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 90,678
精华内容 36,271
热门标签
关键字:

c语言基本类型字节数

c语言 订阅