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. 精度较大的变量赋值给精度较小的变量,精度将会降低
相关文章
|
4月前
|
存储 C语言
C语言数据类型、变量和运算符以及printf相关问题
C语言数据类型、变量和运算符以及printf相关问题
|
1天前
|
存储 编译器 C语言
【C语言】C语言的变量和声明系统性讲解
在C语言中,声明和定义是两个关键概念,分别用于告知编译器变量或函数的存在(声明)和实际创建及分配内存(定义)。声明可以多次出现,而定义只能有一次。声明通常位于头文件中,定义则在源文件中。通过合理组织头文件和源文件,可以提高代码的模块化和可维护性。示例包括全局变量、局部变量、函数、结构体、联合体、数组、字符串、枚举和指针的声明与定义。
25 12
|
9天前
|
C语言
【C语言】全局搜索变量却找不到定义?原来是因为宏!
使用条件编译和 `extern` 来管理全局变量的定义和声明是一种有效的技术,但应谨慎使用。在可能的情况下,应该优先考虑使用局部变量、函数参数和返回值、静态变量或者更高级的封装技术(如结构体和类)来减少全局变量的使用。
26 5
|
2月前
|
存储 C语言
【c语言】数据类型和变量
本文介绍了C语言中的数据类型和变量。数据类型分为内置类型和自定义类型,内置类型包括字符型、整型、浮点型等,每种类型有不同的内存大小和取值范围。变量分为全局变量和局部变量,它们在内存中的存储位置也有所不同,分别位于静态区和栈区。通过示例代码和图解,详细阐述了这些概念及其应用。
47 1
|
2月前
|
存储 C语言
C语言指针与指针变量的区别指针
指针是C语言中的重要概念,用于存储内存地址。指针变量是一种特殊的变量,用于存放其他变量的内存地址,通过指针可以间接访问和修改该变量的值。指针与指针变量的主要区别在于:指针是一个泛指的概念,而指针变量是具体的实现形式。
|
2月前
|
存储 C语言
C语言:设置地址为 0x67a9 的整型变量的值为 0xaa66
在C语言中,可以通过指针操作来实现对特定地址的访问和赋值。要将地址为 0x67a9 的整型变量值设为 0xaa66,可以先定义一个指向该地址的指针,并通过该指针对该内存位置进行赋值操作。需要注意的是,直接操作内存地址具有一定风险,必须确保地址合法且可写。代码示例应考虑字节序及内存对齐问题。
|
2月前
|
C语言
C语言学习笔记-知识点总结上
C语言学习笔记-知识点总结上
89 1
|
2月前
|
C语言 C++
【C语言】指针篇-一篇搞定不同类型指针变量-必读指南(3/5)
【C语言】指针篇-一篇搞定不同类型指针变量-必读指南(3/5)
|
2月前
|
存储 C语言
初识C语言:常量与变量中寻找数据类型
初识C语言:常量与变量中寻找数据类型
|
3月前
|
存储 C语言
【C语言基础考研向】02 数据类型-常量-变量
本文介绍了编程中的基本概念,包括数据类型分类、常量与变量的定义及使用。首先概述了四大类数据类型:基本类型(整型、浮点、字符型)、构造类型(数组、结构体)、指针类型和空类型。接着阐述了常量与变量的区别及命名规则,并详细说明了整型、浮点型和字符型数据的特点与应用。最后总结了常见的易错点,如字符串与字符常量的区别及浮点数的默认输出格式。