【初识C语言】数据类型

发布时间:2024年01月06日

目录

数据类型

1.基本类型

1.1整数类型

1.2浮点数类型

1.3字符类型

1.4布尔类型

1.5枚举类型

2.sizeof运算符

3.变量

3.1概念

3.2变量使用步骤

3.3变量名命名规则

3.4变量的分类

3.4.1局部变量

3.4.2全局变量

3.5变量练习

3.6变量的作用域和生命周期

3.6.1作用域

3.6.2声明周期

变量使用的注意事项

4.常量

4.1 常量分类

4.2 字面常量

4.3 const修饰的常变量

4.4 #define定义的标识符常量

4.5 枚举常量

scanf报错解决步骤


数据类型

1.基本类型

1.1整数类型

C语言的整数类型就是用来存放整数值的,如:20,30等

  • short
  • int(常用)
  • long
  • long long

1.2浮点数类型

C语言的浮点数类型就是用来表示小数值的,如2.4,0.24等

  • float
  • double

1.3字符类型

C语言字符类型可以表示单个字符,如'a',多个字符称为字符串,如'hello'

  • char

1.4布尔类型

_Bool仍是整数类型,但与一般整型不同的是,_Bool变量只能赋值为0或1,非0的值都会被存储为1,C99还提供了一个头文件<stdbool.h>定义了bool代表_Bool,true代表1,false代表0

  • _Bool

1.5枚举类型

  • enum

2.sizeof运算符

sizeof运算符用于获得数据类型或表达式的长度

代码举例:

#include <stdio.h>
int main() 
{
	printf("%d\n", sizeof(int));
	printf("%d\n", sizeof(long));
	printf("%d\n", sizeof(short));
	printf("%d\n", sizeof(long long ));
	printf("%d\n", sizeof(float));
	printf("%d\n", sizeof(double));
	printf("%d\n", sizeof(char));
	return 0;
}

运行可得各类型所占字节(单位byte)

不同设备可能结果不同,C语言规定:sizeof(long)>=sizeof(int) (笔者电脑取的是等于)

补充:计算机中的单位:

比特:bit? ? ? ? 字节:byte? ? ? ? (1byte=8bit)

kb? ? ? ? mb? ? ? ? gb? ? ? ? tb? ? ? ? pb? ? ? ? (1mb=1024kb? ? ? ?1gb=1024mb 以此类推)

生活中有的值是不变的(比如每个人的身份证号码、圆周率等),而有的值是可变的(如年龄、身高、体重等),在C语言中,用常量的概念来表示不变的值,用变量来表示可变的值,下面笔者将给大家介绍变量和常量

3.变量

3.1概念

变量相当于内存中一个数据空间的表示,你可以把变量看做是一个房间的门牌号,通过门牌号可以找到相应的房间,而通过变量名我们可以访问到相应的变量值

3.2变量使用步骤

  • 声明变量 int a (告诉计算机要开辟一片空间)
  • 赋值 a=10
  • 使用printf("a=%d\n",a);
  • 常用一步到位:int a = 10;(数据类型 变量名 = 值

3.3变量名命名规则

C语言规定,变量名的第一个字符必须是字母或者下划线,其后的字符必须是字母(A-Z,a-z)、数字(0-9)或下划线(_)且不能把关键字作为变量名

由ANSI标准定义的C语言关键字:

  • auto ?double ?int ?struct ?break ?else ?long ?switch
  • case ?enum ?register ?typedef ?char ?extern ?return ?union
  • const ?float ?short ?unsigned ?continue ?for ?signed ?void
  • default ?goto ?sizeof ?volatile ?do ?if ?while ?static

3.4变量的分类

3.4.1局部变量

局部变量就是在{}内部定义的变量,不能在{}外使用,否则会报错。在同一范围内,变量名不能重复,否则会报错。

3.4.2全局变量

全局变量就是在{}外定义的变量,可以在{}内使用

全局变量和局部变量名可以相同,当二者相同时,遵循局部优先原则(但一般不建议全局和局部变量名相同)

3.5变量练习

  • 输入两个数并求和

如果是第一次使用scanf运行或许会报错,没有关系,在第一行添加

#define _CRT_SECURE_NO_WARNINGS即可解决。具体解决方法笔者会在文章最后向大家介绍

#define _CRT_SECURE_NO_WARNINGS
//输入两个数并求和
#include <stdio.h>
int main()
{
	//初始化
	int num1 = 0;
	int num2 = 0;
	int sum = 0;
	printf("请输入两个数:\n");//做提示
	scanf("%d %d", &num1, &num2);//输入两个数
	sum = num1 + num2;//求和
	printf("sum=%d\n", sum);
	return 0;
}

3.6变量的作用域和生命周期

3.6.1作用域

作用域是指程序设计概念,通常来说就是一段代码中所用到的名字并不总是有效/有用的,而限定这个名字的可用性的代码范围就是这个名字的作用域

  • 局部变量的作用域是变量所在的局部范围
  • 全局变量的作用域是整个工程
3.6.2声明周期

变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段

  • 局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束
  • 全局变量的生命周期是:整个程序的生命周期

变量使用的注意事项

  • 变量表示内存中的一个存储区域
  • 该区域有自己的名字和类型
  • 变量必须先声明后使用
  • 该区域的数据可以在同一类型范围内不断变化
  • 变量在同一个作用域内不能重名
  • 变量三要素:变量名+数据类型+值

4.常量

4.1 常量分类

  • 字面常量
  • const修饰的常变量
  • #define定义的标识符常量
  • 枚举常量

4.2 字面常量

字面常量就是直接写出固定的值,它包含C语言中可用的数据类型,可分为整型常量、字符常量等

//常量
#include <stdio.h>
int main()
{
	//字面常量
	3.14;
	"hello";
	'a';
    return 0;
}

4.3 const修饰的常变量

const修饰的常变量,本质上是变量,但具有常属性,不能被修改(下面代码可以看出若强制修改会报错)

4.4 #define定义的标识符常量

C语言提供了#define命令定义标识符常量,该标识符常量在程序中是个定值,通常用于代表数组容量或涉及数学的常量

4.5 枚举常量

枚举类型能够列出所有可能会用到的取值,并给他们取一个名字

(注:枚举常量默认从0开始,依次向下递增)

使用枚举常量时,要注意以下几点

  • 不能对枚举常量赋值,只能将他们的值赋给其他的变量
  • 不能再定义与枚举常量名字相同的常量
  • 不能用&取的他们的地址

scanf报错解决步骤

  • 建议下载一个名叫Everthing的软件,方便找自己所需的文件
  • 打开Everything,搜索框输入newc++,点击右键打开路径

  • 建议复制一份到桌面,用记事本打开,添加#define _CRT_SECURE_NO_WARNINGS然后保存

  • 再拖入刚才的路径,替代原文件,如此一来再创建源文件就会自动添加该句

文章来源:https://blog.csdn.net/m0_71745221/article/details/135389585
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。