数据类型介绍

  • char (字符数据类型)
  • short (短整型)
  • int (整型)
  • long (长整型)
  • long long(更长的整型)
  • float (单精度浮点数)
  • double (双精度浮点数)

C语言类型: 1.内置类型(本身语言就有); 2.自定义类型/构造类型(自己创造的类型)

类型的意义:

  • 1.使用这个类型开辟空间的内存大小(大小决定了使用范围)。
  • 2.如何看待内存空间的视角

整型家族

  • char
    • unsigned char(没有正负之分)
    • signed char(第一个是0就是正数,1就是负数)
  • short
    • unsigned short[int]
    • signed short[int]
  • int
    • unsigned int
    • signed int
  • long
    • unsigned long[int]
    • signed long[int]

浮点型家族

  • float
  • double

构造类型

  • 数组类型 (int[10]和int[5]不是一种类型)
  • 结构体类型 struct
  • 枚举类型 enum
  • 联合类型 union

指针类型

  • int* pi;
  • char* pc;
  • float* pf;
  • double* pd;
  • void* pv;

指针类型所创建的变量特点是: 大小统一,目的是为了存放地址

空类型

void表示空类型(无类型); 常用于函数的返回值、函数的参数、指针类型。

  1. #include "stdio.h"
  2. void test(){
  3. printf("hehe\n");
  4. }
  5. int main(){
  6. test(100);
  7. return 0;
  8. }

并没有需要参数,却没有报错。

C语言在设计之初的时候,形参什么都不写的时候,你传参可以,不传参也可以

后来给个解决方案: 你如果想明确写出,函数不需要参数,你可以写void test(void)。程序还是执行起来了,但是会提示警告

原码、反码、补码

计算机中有符号有三种表示方法: 即原码,反码,补码

三种表示方法均有符号位数值位俩部分,符号位都是0表示;用1表示。而数值位三种表示方法个不相同

原码

直接将二进制按照正负数的形式翻译成二进制就可以

反码

将原来的符号位不变,其他位依次按位取反就可以得到了。

补码

反码+1就得到补码

正数的原、反、补码都相同。
对于整型来说: 数据存放内存中其实存放的是补码。

在计算机中,数值一律用补码来表述和存储,原因在于: 使用补码可以将符号和数值域统一处理,同时,加法和减法也可以统一处理[CPU只有加法器]此外,补码与原码相互转换,其运算过程是相同的,不需要额外的硬件电路。