概述
【C/C++】数据类型、变量、常量
摘要:
- 这篇文章主要介绍C语言中简单的内置类型与变量常量的使用定义方法和部分原理。
- 文章主要有两个目的:1. 掌握C语言的各种内置类型,学会使用定义各种常量变量;2. 了解变量与常量的基本原理,并完成思考题;
文章目录
- 【C/C++】数据类型、变量、常量
- 一、数据类型
- 1.1 算术数据类型
- 1.2 数据类型的大小
- 二、变量
- 2.1 如何定义变量?
- 2.2 定义变量的规则
- 2.3 全局变量
- 三、常量
- 3.1 常量
- 3.2 各种常量的介绍
一、数据类型
1.1 算术数据类型
算术数据类型主要分为两类:整形与浮点型。首先需要掌握的是数据类型的命名与含义,其表格如下所示:
类型 | 含义 | 最小尺寸 |
---|---|---|
bool | 布尔类型 | 未定义 |
char | 字符 | 8位 |
short | 短整型 | 16位 |
int | 整型 | 16位 |
long | 长整型 | 32位 |
long long | 长整型 | 64位 |
float | 单精度浮点数 | 6位有效数字 |
double | 双精度浮点数 | 10位有效数字 |
long double | 扩展精度浮点数 | 10位有效数字 |
当然数据类型还包括结构类型(数组、结构、联合、类)、指针类型和空类型,这些篇目庞大,在未来会细细道来。
1.2 数据类型的大小
使用C++代码求每种类型的大小
#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
using namespace std;
int main() {
printf("Size of bool:%dn", sizeof(bool));
printf("Size of char:%dn", sizeof(char));
printf("Size of short:%dn", sizeof(short));
printf("Size of int:%dn", sizeof(int));
printf("Size of long:%dn", sizeof(long));
printf("Size of long long:%dn", sizeof(long long));
printf("Size of float:%dn", sizeof(float));
printf("Size of double:%dn", sizeof(double));
printf("Size of long double:%dn", sizeof(long double));
return 0;
}
输出结果如下(单位:字):
Size of bool:1
Size of char:1
Size of short:2
Size of int:4
Size of long:4
Size of long long:8
Size of float:4
Size of double:8
Size of long double:8
1.3 思考
(1)数据类型bool在C++ Primer上写到是未定义最小尺寸的,而在Visual Studio中运行代码后显示的是占用1个字节,原因是什么呢?
(2)数据类型long与数据类型int的大小都是32位字,它们的区别是什么呢?
二、变量
2.1 如何定义变量?
基本形式: 类型说明符 + 一个或多个变量名列表(用逗号分隔);
举例:
int num1 = 0,num2 = 0;
float weight = 45.5f;//单精度浮点型后需要 +f
double height = 180.2;
char ch = 'c';
2.2 定义变量的规则
-
只能由字母(包括大写和小写)、数字和下划线( _ )组成。
-
不能以数字开头。
-
长度不能超过63个字符。
-
变量名中区分大小写的。
-
变量名不能使用关键字。
2.3 全局变量
概述:可以作用于整个项目的变量
定义方式:在头文件或命名空间后进行定义
例:
#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
using namespace std;
int gobal_variable = 10086;
// 源.cpp
int main() {
printf("gobal variable == %dn", gobal_variable);
return 0;
}
以下情况会出报错:未定义标识符"gobal_variable"
#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
//源2.cpp
using namespace std;
int main() {
printf("cpp1:gobal variable == %dn", gobal_variable);
}
更改方式:应用关键字 extern
#include<iostream>
using namespace std;
int main() {
extern int gobal_variable;
printf("cpp1:gobal variable == %dn", gobal_variable);
}
注:当局部变量和全局变量同名时,局部变量优先
2.4 思考
在2.3的注意事项中(当局部变量和全局变量同名时,局部变量优先),请问是否能在重名时使用全局变量呢?
三、常量
3.1 常量
常量表示不可修改的值,大致分类如下:
- 字面常量
- const 修饰的常变量
- #define 定义的标识符常量
- 枚举常量
3.2 各种常量的介绍
-
字面值常量
字面值常量包括了整型浮点型字面值、字符和字符串字面值、转义序列和布尔字面值指针字面值等。
整型字面值我们常用十进制、八进制和十六进制表示,例:
42/*十进制*/ 042 /*八进制*/ 0x42/*十六进制*/
浮点型字面值表现为一个小数或科学计数法表示的指数,指数部分用E或e标识,例:
3.14 3.14E0 0. 0e0 .001
字符和字符串是用来标识char的字面值,用 单引号括起来的表示一个字符,用双引号括起来的表示字符串,例如:
'a' "Hellow World"
转义序列表示以反斜线作为开始,通过与部分字符组合表示特殊含义的字符,例:
n r ddd xdd
-
const 修饰的常变量
当用const修饰变量事,变量就不可以修改
const int const_variable = 100; //const_variable = 10; err:常变量不可修改
-
#define 定义的标识符常量
#define MAX 100 //MAX = 100; err:常量不可修改 printf("max = %dn", MAX);
-
枚举常量
枚举常量定义的关键字为enum,定义的位置为头文件或命名空间之后。之所以取名枚举常量,是因为在定义后,可以通过枚举的值来表示序号(默认从0开始,依次向下递增1的),例:
#define _CRT_SECURE_NO_WARNINGS 1 #include<iostream> using namespace std; enum Student { 张三, 李四, 王五 }; int main(){ printf("enum:Student Name %d;n", 张三); printf("enum:Student Name %d;n", 李四); printf("enum:Student Name %d;n", 王五); return 0; }
“免死”声明:
- 作者写博客的C/C++内容主要是想形成一套实用的使用手册,主要追求的方便,以及记录一下自己在重新看C和C++内容的思考,所以常规文章一般都比较追求实用性,深层次内容是不及各位大神所写的博客那样深刻清晰,请轻喷;
- 欢迎各位在评论区中指正指导,非常感谢;
- 关于思考题,将会在下个星期更新后同步更新(没有标准答案,纯属作者的“主观臆断”);
- C/C++的代码将会放到: https://gitee.com/liu-hongtao-1/c–c–review.git ,欢迎查看!
最后
以上就是鲤鱼蜡烛为你收集整理的【CC++】数据类型、变量、常量【C/C++】数据类型、变量、常量的全部内容,希望文章能够帮你解决【CC++】数据类型、变量、常量【C/C++】数据类型、变量、常量所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复