前言

一、人物简介

  • 第一位闪亮登场,有请今后会一直教我们C语言的老师 —— 自在。

  • 第二位上场的是和我们一起学习的小白程序猿 —— 逍遥。

二、基本数据类型

1、整型

C语言中的整型数据如下表所示:

数据类型 含义 长度(字节) 取值范围(有符号) 取值范围(无符号)
short 短整型 2 [ -$2^{15}$ , $2^{15}$-1 ] [ 0 , $2^{16}$-1 ]
int 整型 4 [ -$2^{31}$ , $2^{31}$-1 ] [ 0 , $2^{32}$-1 ]
long 长整型 4或8
long long 长长整型 8 [ -$2^{63}$ , $2^{63}$-1 ] [ 0 , $2^{64}$-1 ]
  • 整型数据可以是有符号的,也可以是无符号的。

  • 有符号的整型可以表示负数和正数,而无符号的整型只能表示非负整数。

2、浮点型

浮点型用于表示实数,它分为单精度浮点型(float)和双精度浮点型(double)。单精度浮点型占用4个字节,双精度浮点型占用8个字节。它们的取值范围和精度如下表所示:

数据类型 长度(字节) 取值范围 精度
float 4 1.2E-38 ~ 3.4E38 约6位小数
double 8 2.2E-308 ~ 1.8E308(15位有效数字) 约15位小数

浮点型数据在计算机内部以二进制形式存储,因此可能会存在精度问题。在进行浮点型数据的比较时,应该使用适当的误差范围进行比较。

3、字符型

字符型用于表示单个字符,它占用1个字节。

数据类型 含义 长度(字节) 取值范围(有符号) 取值范围(无符号)
char 字符型 1 [ -$2^7$ , $2^7$-1 ] [ 0 , $2^8$-1 ]

字符型数据可以作为单个字符使用,也可以作为整型数据使用,表示该字符在ASCII码表中的对应数值。

4、布尔型

布尔型(bool)用于表示真假值,它只有两个取值:true和false。

在C语言中,布尔型数据被定义为一个整型数据类型,0表示false,非0表示true。

三、变量



1、变量的定义和声明

在C语言中,变量必须先被定义或声明才能使用。定义一个变量意味着为它分配内存,声明一个变量意味着告诉编译器这个变量的类型和名称。

  • 变量的定义格式如下:
type variable_name;

其中,type是变量的数据类型,variable_name是变量的名称。例如:

int apple;
short i = 5;
float voltage;
  • 变量的声明有两种情况:

1️⃣一种是需要建立存储空间的。例如:int apple 在声明的时候就已经建立了存储空间。

2️⃣另一种是不需要建立存储空间的,通过使用extern关键字声明变量名而不定义它。 例如:extern int apple, 其中变量 apple 可以在别的文件中定义。

extern int apple; //声明,不是定义
int students; //声明,也是定义

一般来讲,除非有extern关键字,否则都是变量的定义

2、变量类型

在C语言中,变量的类型指的是变量所存储的数据类型。我们前面介绍的基本数据类型,都可以作为变量的类型。

  • int:整型,用于存储整数。
  • long: 长整型,用于存储更大的整数。
  • float:单精度浮点型,用于存储浮点数。
  • double:双精度浮点型,用于存储更大的浮点数。
  • char:字符型,用于存储字符。
  • bool:布尔型,用于存储布尔值。

C语言还提供了一些复合数据类型,如结构体、联合体和枚举等,这些符合数据类型,我们在以后的文章中再介绍。

3、变量命名规则

  • 变量名可以由字母、数字和下划线组成,但必须以字母或下划线开头。

  • 变量名不能使用关键字作为名称,变量名的长度没有限制,但建议使用有意义的名称。

️ 正确的变量命名

int _gCount = 1;
int m_Age = 18;
long time2 = 20;

错误的变量命名

int 1round = 0; //不能以数字开头

int case = 1; //不能以关键字作为变量名

int %age = 16; //不能用标点符号

int name age = 18; //不能用空格

4、变量的初始化和赋值

  • 在C语言中,可以使用赋值运算符(=)将一个值赋给一个变量。

例如,下面的代码将值20赋给变量num:

int num;
num = 20;
  • 变量的初始化是指在声明变量时将其赋初值。

例如,下面的代码声明并初始化了一个名为num的整数变量:

int num = 10;

5、变量作用域

在C语言中,变量的作用域指的是变量在程序中可见的范围。变量可以在函数内部或外部定义。

  • 在函数内部定义的变量称为局部变量,只在该函数中可见。
  #include <stdio.h>

  void print_local_num() {
int local_num = 20; // 局部变量
printf("local_num = %d\n", local_num);
} int main()
{
print_local_num(); // 输出 local_num = 20
return 0;
}
  • 在函数外部定义的变量称为全局变量,可以在整个程序中使用。
#include <stdio.h>

int global_num = 10; // 全局变量

void print_global_num() {
printf("global_num = %d\n", global_num);
} int main() {
print_global_num(); // 输出 global_num = 10
return 0;
}

6、变量存储类型

在C语言中,变量的存储类型指的是变量所存储的位置。C语言中的存储类型包括自动、静态、寄存器和外部等。

  • 自动变量:自动变量在函数内部声明,在函数执行时被创建,在函数结束时被销毁。
  • 静态变量:静态变量在函数内部或函数外部声明,它们在程序开始执行时被创建,在程序结束时被销毁。
  • 寄存器变量:寄存器变量是指被存储在CPU寄存器中的变量,它们通常用于在计算密集型的代码中提高性能。
  • 外部变量:外部变量是在程序文件外部声明的全局变量,可以被程序的所有文件访问。

自动变量的默认存储类别为auto。例如,下面的代码定义了一个自动变量num:

#include <stdio.h>

void print_num() {
auto int num = 30;
printf("num = %d\n", num);
} int main() {
print_num(); // 输出 num = 30
return 0;
}

静态变量默认存储类别为static,在程序执行期间始终存在,它的值在函数调用之间保持不变。例如,下面的代码定义了一个静态变量static_num:

#include <stdio.h>

void print_static_num() {
static int static_num = 40;
printf("static_num = %d\n", static_num);
static_num++;
} int main() {
print_static_num(); // 输出 static_num = 40
print_static_num(); // 输出 static_num = 41
print_static_num(); // 输出 static_num = 42
return 0;
}

寄存器变量的默认存储类别为register。例如,下面的代码定义了一个寄存器变量reg_num:

#include <stdio.h>

void print_reg_num() {
register int reg_num = 50;
printf("reg_num = %d\n", reg_num);
} int main() {
print_reg_num(); // 输出 reg_num = 50
return 0;
}

外部变量的默认存储类别为extern。例如,下面的代码定义了一个外部变量extern_num,并在另一个文件中访问它:

// other_file.c
int extern_num = 60; // main.c
#include <stdio.h> extern int extern_num; void print_extern_num() {
printf("extern_num = %d\n", extern_num);
} int main() {
print_extern_num(); // 输出 extern_num = 60
return 0;
}

四、常量

在C语言中,常量可以是整数、浮点数、字符或字符串。

1、 整数常量

整数常量是指不带小数部分的数字。在C语言中,整数常量可以用十六进制、八进制或十进制表示。下表列出了不同进制下整数常量的表示方法:

进制 格式 示例
十进制 直接写数字 10, 20, 30
八进制 以0开头 012, 034, 076
十六进制 以0x或0X开头 0x10, 0x1E, 0xFF

例如,下面的代码定义了三个整数常量:

#include <stdio.h>

int main() {
int decimal_num = 10;
int octal_num = 012;
int hex_num = 0xFF;
printf("decimal_num = %d, octal_num = %d, hex_num = %d\n", decimal_num, octal_num, hex_num);
return 0;
}

输出结果为:decimal_num = 10, octal_num = 10, hex_num = 255。

2、 浮点数常量

浮点数常量是指带有小数部分的数字。在C语言中,浮点数常量可以用小数点表示,也可以用科学计数法表示。例如,下面的代码定义了两个浮点数常量:

#include <stdio.h>

int main() {
float float_num = 1.23;
double double_num = 1.23e-5;
printf("float_num = %f, double_num = %f\n", float_num, double_num);
return 0;
}

输出结果为:float_num = 1.230000, double_num = 0.000012。

3、 字符常量

字符常量是指用单引号括起来的单个字符。例如,下面的代码定义了两个字符常量:

#include <stdio.h>

int main() {
char char_a = 'A';
char char_b = 'B';
printf("char_a = %c, char_b = %c\n", char_a, char_b);
return 0;
}

4、 字符串常量

字符串常量是指用双引号括起来的多个字符。在C语言中,字符串常量实际上是一个字符数组,以空字符('\0')结尾。例如,下面的代码定义了一个字符串常量:

#include <stdio.h>

int main() {
char str[] = "Hello, world!";
printf("%s\n", str);
return 0;
}

输出结果为:Hello, world!。

小结

通过这篇文章,我们已经学会了C语言中基本的数据类型、变量和常量的使用。继续加油,你会成为C语言大佬的!

逍遥自在学C语言 | 变量、常量与数据类型的更多相关文章

  1. Python入门 .变量 常量 基础数据类型 用户输入 流程控制语句 小练习题

    # 2.name = input(“>>>”)通过代码来验证name变量是什么数据类型?--str name = input(">>>") pr ...

  2. golang语法学习(一):变量,常量以及数据类型

    学习一门新的语言肯定是要从他的主要的语法開始,语法构成了整个程序设计的基础,从语法中我们也能够看到这门语言的一些特性.可是话说回来.语法这东西,不同的语言大同小异,所以这也对语法的记忆造成了一定的难度 ...

  3. iOS开发Swift篇(01) 变量&常量&元组

    iOS开发Swift篇(01) 变量&常量&元组 说明: 1)终于要写一写swift了.其实早在14年就已经写了swift的部分博客,无奈时过境迁,此时早已不同往昔了.另外,对于14年 ...

  4. 李洪强iOS开发Swift篇---11_变量&常量&元组

    李洪强iOS开发Swift篇---11_变量&常量&元组 说明: 1)终于要写一写swift了.其实早在14年就已经写了swift的部分博客,无奈时过境迁,此时早已不同往昔了.另外,对 ...

  5. Swift-基础语法之变量&常量&元组

    使用 let来声明一个常量,用 var来声明一个变量.常量的值在编译时并不要求已知,但是你必须为其赋值一次.这意味着你可以使用常量来给一个值命名,然后一次定义多次使用 myVariable = let ...

  6. 不可或缺 Windows Native (2) - C 语言: 常量,变量,基本数据类型

    [源码下载] 不可或缺 Windows Native (2) - C 语言: 常量,变量,基本数据类型 作者:webabcd 介绍不可或缺 Windows Native 之 C 语言 常量 变量 基本 ...

  7. Python学习笔记 (2)变量、常量和数据类型

    变量 顾名思义,变量就是一个会变的量,用一个变量名表示,指向内存中一片区域,而指向的区域存的是什么,这个变量就是什么数据类型,和C/C++挺不一样的.变量数据类型可以通过赋值变来变去(这就叫动态语言, ...

  8. Go语言学习之2 包、函数、常量、数据类型、字符操作

    第一部分:基本数据类型和操作符 1. 文件名&关键字&标识符 (1)所有go源码以.go结尾    (2)标识符以字母或下划线开头,大小写敏感,比如: a. boy     b. Bo ...

  9. JAVA学习(三):Java基础语法(变量、常量、数据类型、运算符与数据类型转换)

    Java基础语法(变量.常量.数据类型.运算符与数据类型转换) 1.变量 Java中.用户能够通过指定数据类型和标识符来声明变量.其基本的语法为: DataType identifier; 或 Dat ...

  10. Java ——关键字 数据类型 变量 常量

    本节重点思维导图 Java程序结构 public class 类名 { public static void main(String[] args){ //……语句 } } 一门语言是由以下各种元素组 ...

随机推荐

  1. swagger接口测试

    导入依赖:<!-- swagger start --><dependency> <groupId>io.springfox</groupId> < ...

  2. function | fastica

    fastica - Fast Independent Component Analysis FastICA for Matlab 7.x and 6.x Version 2.5, October 19 ...

  3. Chorme 兼容

    Chorme自动更新,不知道什么时候版本 就变了.之前好用的代码,突然不好用了. 启动时提示Only local connections are allowed 检查一下兼容性参照下文,下载对应的Dr ...

  4. HBuilder开发uniapp项目使用高德地图相关配置(整理)

    一.高德地图开放平台申请key 1.进入高德地图开放平台 -> 登录或注册 -> 点击进入控制台主页 2.点击应用管理 -> 点击创建新应用 3.输入并选择应用类型 -> 点击 ...

  5. centos7 系统运行中做raid磁盘阵列

    插入磁盘 lsblk查看磁盘总体情况 对sdb1等需要做的硬盘进行制作 fdisk /dev/sdb 开始 n 创建 p 给资源回车 重选代码 t 确认磁盘阵列代码 fd 保存w 首先安装工具 mda ...

  6. C语言初级阶段4——数组2————二维数组

    C语言初级阶段4--数组2----二维数组 二维数组的定义:类型说明符 数组名[数组大小] [数组大小] 第一个大小是行的大小,第二个大小是列的大小. 二维数组的初始化:{} #include< ...

  7. 如何简单使用Git

    Git基本功能 Git基本功能 在具体介绍Git能做什么之前,先来了解下Git里的四个角色: workspace: 本地的工作空间. index:缓存区域,临时保存本地改动. local reposi ...

  8. 2003031126-石升福-python数据分析第四周作业-第二次作业

    项目 matplotlib 博客名称 2003031126-石升福-Python数据分析第四周作业 班级链接 20级数据班 作业链接 第二次作业 要求 每道题要有题目,代码(使用插入代码,不会插入代码 ...

  9. Reincarnation

    HDU4622 Now you are back,and have a task to do: Given you a string s consist of lower-case English l ...

  10. Sentinel介绍与使用

    https://blog.csdn.net/noaman_wgs/article/details/103328793