2.1 数据类型-常量-变量(整型-浮点-字符)

2024-05-27 08:20

本文主要是介绍2.1 数据类型-常量-变量(整型-浮点-字符),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

1 数据类型

1.1 关键字

2 常量

3 变量

3.1 命名规则

4 整形数据

4.1 符号常量

4.2 整型变量

5 浮点型数据

5.1 浮点型常量

5.2 浮点型变量

6 字符型数据

6.1 字符型常量

转义字符

6.2 字符数据在内存中的存储形式及其使用方法

6.3 ASCII码表

7 字符串型常量


1 数据类型

裁缝做衣服时需要用到化纤、纯棉、丝绸等不同类型的布料,那么程序员在编写程序时需要用到哪些数据类型呢?数据类型的分类如下图所示:

1.1 关键字

C语言中有许多关键字(32个),在后面的章节中将详细介绍这些关键字(不用去记),这里罗列它们的目的是让大家知道C语言中的关键字有哪些,以避免命名变量时与关键字重名(完全不用担心,CLion开发环境重名后会自动提醒大家的)。下表列出了C语言中的关键字:


2 常量

常量是指在程序运行过程中,其值不发生变化的量。常量又可分为整型、实型(也称浮点型)、字符型和字符串型,如下图所示。

整型常量、实型常量、字符型常量是在编译时可以直接编入代码段的常量

例如,在字符串"你好"中,双引号中间的汉字就是字符串型常量,无论双引号中间的内容是ASCII码字符,还是汉字或其他国家的文字等,都是字符串型常量(考研不会考汉字的字符串常量,无需掌握)。


3 变量

变量代表内存中具有特定属性的一个存储单元,它用来存放数据,即变量的值。这些值在程序的执行过程中是可以改变的。

变量名实际上以一个名字代表一个对应的存储单元地址。编译、链接程序时,由编译系统为每个变量名分配对应的内存地址(就是空间)

从变量中取值实际上是通过变量名找到内存中存储单元的地址,并从该存储单元中读取数据,如下图所示:

3.1 命名规则

变量的命名规定如下:

        C语言规定标识符只能由字母、数字和下画线三种字符组成,并且第一个字符必须为字母或下画线(数字不能开头)。

        标识符是区分大小写的,编译系统认为大写字母和小写字母是不同的字符,因此C语言要求对所有用到的变量做强制定义,即“先定义,后使用”。同时在选择变量名和其他标识符时,应尽量做到“见名知意”,即选择具有含义的英文单词(或其缩写)作为标识符。

        标识符不能是C语言的关键字(如int、for、if等)。

以下是一些有效的C语言标识符示例:

  • myVariable
  • _privateVar
  • MaxValue
  • count123
  • sum
  • _total,
  • month
  • Student_name
  • lotus_1_2_3
  • BASIC

以下是一些无效的C语言标识符示例:

  • 123var (以数字开头)
  • for (是关键字)
  • int (也是关键字)
  • my-var (包含非法字符-)
  • M.D.John(包含非法字符.)
  • ¥123(包含非法字符¥)
  • a>b(包含非法字符>)

4 整形数据

4.1 符号常量

我们来看下面的例子:

#include <stdio.h>
//符号常量#define PI 3+2int main() {//PI = 8; //不可以修改常量的值,会报错int i = PI * 2; // PI会被替换为3+2,所以i=3+2*2=7printf("i=%d\n", i); // 输出i的值: i=7return 0; // main函数应返回0表示成功结束
}

最终的输出结果是7,原因是符号常量PI是直接替换的效果,因此不可以写PI=8

4.2 整型变量

定义一个整型变量时要使用关键字int,掌握 int i 足以应对初试,后面高级阶段会详细讲解不同类型整型变量,没有时间的同学可以不掌握高级,变量i是4个字节

#include <stdio.h>
//符号常量#define PI 3+2int main() {//PI = 8; //不可以修改常量的值int i = PI * 2; // PI会被替换为3+2,所以i=3+2*2=7printf("i=%d\n", i); // 输出i的值: i=7//sizeof可以用来计算某个变量的空间大小printf("i size = %d\n", sizeof(i));//i size = 4return 0;
}

5 浮点型数据

5.1 浮点型常量

表示浮点型常量的形式有两种,如下表所示,其中e代表10的幂次,幂次可正可负。

注意:字母e (或E)之前必须有数字,且e后面的指数必须为整数

正确示例:1e3、1.8e-3、-123e-6、-.1e-3(0可以省略,等价于-1e-4)。
错误示例:e3、2.1e3.5、.e3、e.

5.2 浮点型变量

通过 float f 来定义浮点变量,f占用4个字节的空间

#include <stdio.h>int main() {float f= 3e-3;printf("f=%f\n",f); //f=0.003000printf("float size = %d\n", sizeof(float));//float size = 4printf("double size = %d\n", sizeof(double));//double size = 8return 0;
}

6 字符型数据

6.1 字符型常量

单引号括起来的一个字符是字符型常量,且只能包含一个字符。

例如:'a'、'A'、'T'、'"是正确的字符型常量,而'abc' 、 "a"、""是错误的字符型常量。

转义字符

下表中给出了各种转义字符及其作用。以“\”开头的特殊字符称为转义字符,转义字符用来表示回车、退格等功能键。

6.2 字符数据在内存中的存储形式及其使用方法

字符型变量使用关键字char进行定义,一个字符型变量占用1字节大小的空间。

一个字符常量存放到一个字符型变量中时,实际上并不是把该字符的字型放到内存中,而是把该字符的ASCII码值放到存储单元中。打印字符型变量时,如果以字符形式打印,那么计算机会到ASCI码表中查找字符型变量的ASCII码值,查到对应的字符后会显示对应的字符,如下图所示。

这样,字符型数据和整型数据之间就可以通用。字符型数据既可以以字符形式输出,又可以以整数形式输出,还可以通过运算获取想要的各种字符,请看下面例子:

#include <stdio.h>int main() {char c = 'A'; // 假设我们有一个大写字母printf("%c\n", c);  //Aprintf("%d\n", c);  //65printf("%c\n", c+32);//aprintf("%d\n", c+32);//97return 0;
}

对于字符型变量,无论是赋ASCII码值还是赋字符,使用%c打印输出时得到的都是字符,使用%d打印输出时得到的都是ASCII码值。将小写字母转换为大写字母时,由ASCII码表发现小写字母与大写字母的差值为32,因此将c减去32就可以得到大写字母A。

6.3 ASCII码表


7 字符串型常量

字符串型常量是由一对双引号括起来的字符序列。例如,"How do you do."、"CHINA"、"a"和"$123.45"是合法的字符串型常量,我们可用语句 printf("How do you do.")输出一个字符串。但要注意的是, 'a'是字符型常量,而"a"是字符串型常量,二者是不同的。

例如,如果先用语句char c定义字符型变量c,后令c="a"或c="CHINA",那么这样的赋值都是非法的,原因是不可以将字符串型常量赋值给字符型变量。C语言中没有定义字符串型变量的关键字,介绍字符数组时我们将详细讲解如何存放字符串。


C语言规定,在每个字符串型常量的结尾加一个字符串结束标志,以便系统据此判断字符串是否结束。C语言规定以字符 '\0' 作为字符串结束标志。
例如,字符串型常量"CHINA"在内存中的存储结果如下图所示,它占用的内存单元不是5个字符,而是6个字符,即大小为6字节,最后一个字符为 '\0' 。然而,在输出时不输出'\0',因为'0'无法显示。

这篇关于2.1 数据类型-常量-变量(整型-浮点-字符)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1006944

相关文章

变量与命名

引言         在前两个课时中,我们已经了解了 Python 程序的基本结构,学习了如何正确地使用缩进来组织代码,并且知道了注释的重要性。现在我们将进一步深入到 Python 编程的核心——变量与命名。变量是我们存储数据的主要方式,而合理的命名则有助于提高代码的可读性和可维护性。 变量的概念与使用         在 Python 中,变量是一种用来存储数据值的标识符。创建变量很简单,

C 语言的基本数据类型

C 语言的基本数据类型 注:本文面向 C 语言初学者,如果你是熟手,那就不用看了。 有人问我,char、short、int、long、float、double 等这些关键字到底是什么意思,如果说他们是数据类型的话,那么为啥有这么多数据类型呢? 如果写了一句: int a; 那么执行的时候在内存中会有什么变化呢? 橡皮泥大家都玩过吧,一般你买橡皮泥的时候,店家会赠送一些模板。 上

C语言程序设计(数据类型、运算符与表达式)

一、C的数据类型 C语言提供的数据类型: 二、常量和变量 2.1常量和符号常量 在程序运行过程中,其值不能被改变的量称为常量。 常量区分为不同的类型: 程序中用#define(预处理器指令)命令行定义变量将代表常量,用一个标识符代表一个常量,称为符合常量。 2.2变量 变量代表内存中具有特定属性的一个存储单元,用来存放数据,在程序运行期间,这些值是可以 改变的。 变

string字符会调用new分配堆内存吗

gcc的string默认大小是32个字节,字符串小于等于15直接保存在栈上,超过之后才会使用new分配。

如何将一个文件里不包含某个字符的行输出到另一个文件?

第一种: grep -v 'string' filename > newfilenamegrep -v 'string' filename >> newfilename 第二种: sed -n '/string/!'p filename > newfilenamesed -n '/string/!'p filename >> newfilename

【2.1 深度学习中的感知机是什么】

2.1 深度学习中的感知机是什么 深度学习是机器学习的一个分支,它模拟人脑的工作方式来处理数据,尤其是通过神经网络的结构来自动提取数据的特征并进行分类、回归或其他复杂的任务。在深度学习的早期发展中,许多基础概念和模型为后续的复杂网络奠定了基础。其中,**感知机(Perceptron)**是一个非常重要的基础模型,它实际上是神经网络和深度学习的前身之一。 感知机的基本概念 感知机是一种二分

JS_变量

二、JS的变量 JS中的变量具有如下特征 1 弱类型变量,可以统一声明成var 2 var声明的变量可以再次声明 3 变量可以使用不同的数据类型多次赋值 4 JS的语句可以以; 结尾,也可以不用;结尾 5 变量标识符严格区分大小写 6 标识符的命名规则参照JAVA 7 如果使用了 一个没有声明的变量,那么运行时会报uncaught ReferenceError: *** is not de

Redis地理数据类型GEO

通常要计算两个地理位置的距离不是很方便,这里可以直接通过Redis提供的GEO操作来完成地理位置相关的计算 1)添加地理位置 语法:geoadd key longitude latitude member [longitude latitude member] ...字段说明:key:存放地理位置的集合名称longitude:地理坐标的经度latitude:地理坐标的纬度member:表示这

使用条件变量实现线程同步:C++实战指南

使用条件变量实现线程同步:C++实战指南 在多线程编程中,线程同步是确保程序正确性和稳定性的关键。条件变量(condition variable)是一种强大的同步原语,用于在线程之间进行协调,避免数据竞争和死锁。本文将详细介绍如何在C++中使用条件变量实现线程同步,并提供完整的代码示例和详细的解释。 什么是条件变量? 条件变量是一种同步机制,允许线程在某个条件满足之前进入等待状态,并在条件满

【Python 千题 —— 算法篇】字符统计

Python 千题持续更新中 …… 脑图地址 👉:⭐https://twilight-fanyi.gitee.io/mind-map/Python千题.html⭐ 题目背景 在编程中,对字符串的字符统计是一个常见任务。这在文本处理、数据分析、词频统计、自然语言处理等领域有广泛应用。无论是统计字母出现的频率,还是分析不同字符类型的数量,字符串字符统计都是非常有用的技术。 字符统