zoukankan      html  css  js  c++  java
  • C语言的基本数据类型

    在计算机中任何数据都呈现为变量和常量两种形式。

    • 常量是指在程序运行时不能改变的量。常量不占内存,在程序运行时它作为操作对象直接出现在运算器的各种寄存器中。
    • 变量是指在程序运行时可以改变的量。变量的功能就是存储数据。

    整型

    整型常量

    • 十进制整常数为0~9的十进制数,没有前缀,例如1213,-123等
    • 八进制整常数必须以0开头,即以0开头的八进制数,取值为0~8。八进制通常是无符号数。例如:015(十进制为13),0101(十进制为65),0177777(十进制为65535)
    • 十六进制的前缀为0X或0x,取值范围为0 ~ 9,A ~ F或a ~ f。例如:0X2A(十进制为42),0XA0(十进制为160),0XFFFF(十进制为65535)

    整型变量

    在C语言中,整型变量有6种类型:基本整型,无符号基本整型,短整型,无符号短整型,长整型,无符号长整型
    下图列出了ANSI标准定义的各种整型变量所分配的内存字节数,以及表示范围

    实型(浮点型)

    实型常量

    实型常量也叫做实数或浮点数。在C中,实数只采用十进制,他有两种形式
    小数形式
    由数值0~9和小数组成,如0.0,25.0,3.1415926,-235.123均为合法的实数(必须要有小数点)

    指数形式
    由十进制数加阶码标志“e”或“E”及阶码(只能为整数,可以带符号)组成。如:
    2.1E5(等于2.1x10的五次方)
    3.7E-2(等于3.7x10的负二次方)

    实型变量

    实型变量分为单精度(float),双精度(double),长双精度(long double)

    实型变量定义的格式和书写规则与整型相同,例如:

    float x,y;      /*单精度*/
    double a,b,c;      /*双精度*/
    long double m,n;      /*长双精度*/
    
    

    由于实型变量是由有限的存储单元组成的,因此能提供的有效数字是有限的,有时存在误差。

    字符型

    字符型数据存储的是字符的ASCLL码值,一个字符占一个字节,即8个bit.
    例如:字符x的ASCLL码值为120,字符y的值为121

    a='x';
    b='y';

    那么实际上在a,b这两个变量名的内存空间里面存放120和121的二进制ASCII码值
    a:

    b:

    所以我们完全可以把字符看成是整型,在输出时可以把字符型变量按整型格式输出,也可以把整型量按字符格式输出
    例如给a,b分别赋予120,121俩个值以字符型和整型分别输出

     1 #include <stdio.h>
      2 int main()            /*C99标准中建议建议将main函数指定为整型int,并要求函数带回一个整数值*/
      3 {
      4         char a,b;
      5         a=120;
      6         b=121;
      7         printf("%c,%c
    ",a,b);
      8         printf("%d,%d
    ",a,b);
      9         return 0;      /*return 0主要是用来返回0,校验main函数是否正确运行*/
     10 }
    
    

    输出结果为

    字符串常量就是被双括号引起来的字符序列。例如:"china","C","#121212"等都是合法的字符串常量

    值得注意的是,字符串常量和字符常量是不一样的

    • 字符常量由单引号引起来,字符串常量由双引号引起来。
    • 字符常量通常是一个字符,字符串常量则可以包含一个或多个字符。
    • 字符常量可以赋予给字符变量,而字符串变量则不行(但是可以通过字符数组来存放字符串变量)
    • 字符常量占用一个字节的内存空间,字符串常量占用的内存空间为字符个数+1。增加的一个字节用来存放"",它代表字符串的结束。

    例如字符串"hello"在内存中占用的字节为

    h e l l o

    实际上是这样一串数

    0110 1000 0110 0101 0110 1100 0110 1100 0110 1111 00000000

    'a'与"a"虽然看起来和输出都是一样的,都是他们在内存中的形式却是不同的
    'a'在内存中只占一个字节

    a

    而"a"在内存中多了一个结束符号,所以有两个字节

    a

    特殊字符常量(转义字符)

    转义字符是一种特殊的字符常量,它以“”开头,后面跟字符。转义字符有具体的含义,不具有字符本身的含义。转义字符一般用来表示普通字符不便于表示的控制代码。C语言常见的转义字符一般有:

    转义字符 含义 ASCII码
    回车换行 10
    横向跳到下一个制表位置 9
     退格 8
    回车 13
    f 走纸换页 12
    反斜线符“” 92
    ' 单引号 39
    " 双引号 34
    a 响铃 7
    ddd 1~3位八进制数所代表的字符
    xhh 1~2位十六进制所代表的字符

    不负责任的讲,C语言字符集里的任何字符都可以用转义字符来表示,例如:

    • ddd的用法就是使用八进制的ASCII值,例如:101表示字母A,102表示字母B,134表示反斜线..........
    • xhh的用法是使用十六进制的ASCII值,例如:XOA表示换行.......
  • 相关阅读:
    python学习笔记
    【JavaScript】如何判断一个对象是未定义的?(已解决)
    【Eclipse】一个简单的 RCP 应用 —— 显示Eclipse 的启动时间。
    Win7 系统如何关闭休眠功能?(已解决)
    【Eclipse】Ubuntu 下菜单栏失效了,怎么办?(已解决)
    【Ubuntu】更新系统时出现Hash校验和不符的错误(已解决)
    【wget】一条命令轻松备份博客(包括图片)
    【Eclipse】启动时报错:No Java virtual machine (已解决)
    git 命令自动补全
    快马和慢马
  • 原文地址:https://www.cnblogs.com/hxlinux/p/13150205.html
Copyright © 2011-2022 走看看