C语言学习笔记——变量(上)

简介: C语言学习笔记——变量

1.变量

1.1整数类型

1.1.1介绍

C语言中整数类型用于存放整数。例如int a =10

1.1.2整数类型的分类

e182cb23f7877731e1396d08741ac31.png

  1. C语言中的整形类型分为signed和unsigned,其中默认为signed,上表为signed
  2. C程序中整形常声明为int

1.2浮点类型

1.2.1介绍

C语言中浮点类型用于存放小数。例如float a = 7.3

1.2.2浮点类型的分类

7eee65fe10047bc93cf3cd42988dccd.png

  1. 浮点数=符号位+指数位+尾数位(浮点数可以理解为近似值)
  2. 尾数部分可能会造成丢失,导致精度损失
  3. float变量需要在后面加上f
  4. %f默认默认6位小数 %.x保存x位小数
#include<stdio.h>
void main() {
  float a1 = 7.32f;//float变量需要在后面加上f
  double a2 = 6.23213213211;//%f默认默认6位小数 %.x保存x位小数
  double a3 = .97;//等价于0.97
  double a4 = 9.7e2;//等价于9.7*10^2
  printf("a1=%f  a2=%f a2=%.15f a3=%f a4=%f", a1, a2, a2, a3, a4);
}

ff3846ee407c486ba0cf1914a3255491.png

1.3字符类型

1.3.1介绍

字符类型为char,大小为1byte,可以存储字母或者数字。

1.3.2代码

2cbbe0ca94b1498dab0c9ac48f41b562.png

#include<stdio.h>
void main() {
  char c1 = 'a';//字符常量需要用两个单引号括号起来
  char c2 = 'b';
  char c3 = 97;//若对char赋值一个整数,它将会输出其对应的的ASCII码的字母或者符号
  printf(" c1 = %c c2 = %c c3 = %c", c1, c2, c3);
  int c4 = c2 + 40;//char类型可以进行运算
  printf(" c4 = %d", c4);
  char c5 = 'A';
  printf(" c5 = %c", c5);
}


  1. 字符常量需要用两个单引号括号起来
  2. 若对char赋值一个整数,它将会输出其对应的的ASCII码的字母或者符号
  3. char类型可以进行运算
  4. 存储:字符'a'→'a'ASCII码值(97)→(97)对应二进制数(1100001)→存储
  5. 读取:二进制数(1100001)→(1100001)对应十进制数(97)→(97)对应ASCII码'a'→读取

1.4布尔类型

  1. C89标准中,需要用宏定义方式定义布尔变量,且bool变量中非0即为真 0即为假
#include<stdio.h>
#define BOOL int
#define TURE 1
#define FALSE 0
void main() {
  //BOOL isOK = TURE;
  BOOL isOK = FALSE;
  if (isOK) {
    printf("true");
  }else {
    printf("false");
  }
}

28a15faa3b534d2195f964a0936f19cf.png

2.C99下,提供了bool类型,但是与C89不同的是,仅存在0为假,1为真(C89下非0即为真),但是需要导入头文件stdbool.h

#include<stdio.h>
#include<stdbool.h>
void main() {
  bool c1 = false;
  if (c1) {
    printf("true");
  }
  else {
    printf("false");
  }
}

0c593cfa70e44726af48de21db7f4c83.png

3.bool通常用于条件控制语句if,循环控制语句while

1.5基本数据类型转换

1.5.1介绍

当c程序在对变量进行赋值和运算时候,将会把精度较小的变量自动转换为精度较大的变量,即基本数据类型转换。

1.5.2数据类型按照精度大小排列为

short→int→long→float→double→long double

其中unsigned int大于signed int

1.5.3数据类型转换规则

char,short→int→unsigned→long→double

float→double

1.5.4代码

#include<stdio.h>
void main() {
  char a1 = 'a';
  int a2 = a1;
  double a3 = a2;
  printf("a1=%c, a2=%d, a3=%lf\n", a1, a2, a3);//char,short→int→unsigned→long→double
                                               //float→double
  char c1 = 97;
  int c2 = 100;
  int c3 = c1 + c2;
  printf("c3=%d\n", c3);//两个不同精度的变量进行运算,精度较小的变量会自动转换成精度较大的变量
  double b1 = 97.232141221564;
  float b2 = b1;
  printf("b2 = %.10f\n", b2);//精度较大的变量赋值给精度较小的变量,精度将会降低
}


b87aa325c3e34dfd919bce0c32bf3422.png

  1. char,short→int→unsigned→long→double
    float→double
  2. 两个不同精度的变量进行运算,精度较小的变量会自动转换成精度较大的变量
  3. 精度较大的变量赋值给精度较小的变量,精度将会降低
相关文章
|
3天前
|
存储 编译器 C语言
C语言3 变量
C语言3 变量
5 1
|
13天前
|
C语言
C语言15---在VC中变量的注意点和变量的注意细节
C语言15---在VC中变量的注意点和变量的注意细节
|
21天前
|
C语言
C语言学习笔记之初识字符串
C语言学习笔记之初识字符串
25 5
|
20天前
|
存储 编译器 C语言
C语言数据类型和变量(二)
C语言数据类型和变量(二)
|
20天前
|
存储 编译器 C语言
C语言数据类型和变量(一)
C语言数据类型和变量(一)
|
22天前
|
C语言
【C语言】:详解函数指针变量,函数指针数组及转移表
【C语言】:详解函数指针变量,函数指针数组及转移表
18 2
|
11天前
|
C语言
|
11天前
|
C语言
|
11天前
|
C语言
C语言学习笔记-W3
w3 条件,循环和数组
7 0
|
13天前
|
C语言
C语言16---变量的注意细节
C语言16---变量的注意细节