目录

不要把生活过成孤岛,多给你的父母兄弟姐妹打电话,多跟你高质量的朋友联系。

一、C++文件结构
二、C++语言基本要素

一、C++文件结构

二、C++语言基本要素

1、标识符

什么是标识符?
变量、常量、函数、标签和用户定义的各种对象,即成为标识符。

组成:
1、由字母(大小写)、数字、下划线组成。
2、不能以数字开头

注意
1、C++中标识符的长度是任意的,但一般来说只有钱1024个字符是有意义的,
2、C语言中标识符也是任意长度的,但
外部链接调用时,只有前6个字符有效,
多个文件共享的全局函数或变量,不被外部链接调用,通常只有前31个字符有效。

2、关键字

含义:
是C++编译器内置的有特殊意义的标识符,用户不能定义与关键字相同的标识符。

3、常量

含义:
其值在运行时是不能改变的,只在定义定义常量的时候可以设置初始值。

定义操作:
用const关键字来定义一个常量,
fe:
const int MAX_VALUE = 10;

4、变量

即其值可以改变的量,称为“变量”。
变量提供一个具有名称(变量名)的存储区域,我们就可以通过这个变量名来对存储区域进行读写操作。

每一个变量,都有两个属性,即左值和右值,
左值,变量的地址值,
右值,变量的数据值。
fe:变量声明的操作

“`C++
单个变量的声明:
int min = 0;
char *pch;

多个变量声明,可以连续指定初始值
int min = 10, max = min + 50;

通过每种数据类型的构造函数来初始化变量:
int min = int(); // int()默认初始化值为0
double max = double(); // double()默认初始化值为0.0

<pre><code class="line-numbers">#### 5、变量的存储类型
C++中,变量通常有4种存储类型,分别为exterm、static、register和auto。
##### 5.1、exterm存储类型(外部)
**一个重要的概念:**
变量的声明和定义
声明:告知编译变量的名称和数据类型,
定义:为变量分配存储区域。

通常情况下,变量的声明也被认为变量的定义,

而exterm就是只对变量声明,而不定义变量,
fe:
exterm int var;
##### fe:exterm的好处
“`C++
可以使用其他文件的共享全局变量,
fe:
在一个文件A中定义一个整型的全局变量var,
int var = 0;

而在另外一个文件B中通过使用exterm关键字声明全局变量var,
则在这个文件B中A文件中的全局变量var
exterm int var;

5.2、static存储类型(静态)
定义:
该类型的变量在函数或文件内是“持久性”变量,也称静态变量,
**即该变量在执行后,将保留该结果值,作为下一次使用的初值。**

静态变量分为:
1、局部静态变量
2、全局静态变量

“`C++

void TestStaticVar(){
static int slocal = 10 ; // 定义一个局部静态变量
printf("%d\n",slocal);
slocal++;
}

void main(){
TestStaticVar();
TestStaticVar();
TestStaticVar();
}

/*
说明:
printf格式化输出:
int printf(const char *format[,argument]…);
其中,format表示格式,argument表示输出的值
*/

<pre><code class="line-numbers">##### 5.3、register存储类型(注册表)
定义:
register类型的变量,放在cup的寄存器中,访问速度就快很多。

但是,只能作为局部变量或函数的形式参数,
不能定义全局的register变量,

fe:
不能写在函数外面,可以写在函数里面作为局部变量
##### 5.4、auto存储类型(自动)
变量的存储方式,主要有两种,
即静态存储和动态存储。

全局变量、静态变量均属于静态存储,
普通的局部变量属于动态存储。

auto关键字定义的变量,为动态存储。

默认情况下,局部变量均为auto变量(自动变量)
##### fe:
“`C++
定义一个全局的auto变量是非法的,因为全局变量是静态存储,与auto静态变量是冲突的。

就如你把一个double型数据,赋值给int型的变量。
int a;
a = 1.5; // 此为错误写法

三、数据类型

常用数据类型:
数值类型、字符类型、数组类型、布尔类型、枚举类型、结构体类型、共用体类型、指针类型、引用类型和自定义类型。

1、数值类型

数值类型主要分为:
整型和实型(浮点型)

符号划分:
有符号和无符号

长度划分:
普通整型、短整型、长整型

注意
1、实数的相加
实型数据是有效数字的限制,如单精度float的有效数字是6~7位,
fe:
输入如86041238.78,
输出显示为:86041240.00

2、实数和零的比较
两个实数的比较,此时应使用,">=", "<="之类的运算符,而不要用“==”,“=!”

使用">="才是高质量的代码。
fe:利用实数精度进行实数比较

“`C++
void main(){
float eps = 0.0000001; // 定义0的精度
float fvar = 0.00001;
if (fvar >= -eps && fvar <= eps)
printf("等于零!\n",fvar);
else
printf("不等于零!\n",10);
}

<pre><code class="line-numbers">#### 2、字符类型
字符数据用,英文半角状态下的,单引号''和双引号""来表示
##### fe:
“`C++
char c = ‘a’;

char ch = 97;
printf(“%c\n”,ch); // 输出a,因为97对应的ASCII码为“a”

3、数组类型

定义:
具有**相同数据类型**的一组元素的**集合**。

数组中**元素**是按**顺序存储**在**内存中**,

数组按维数划分:
一维数组、二维数组和多维数组。
3.1、一维数组
定义格式:
数组类型 数组名称[数组长度];
fe:

“`C++
int array[10]; // 新建长度为10数组array

array[1] = 22; // 将数组array中的第2个元素设置为22.

// 定义数组时,直接对数组全部元素赋值
int array[10] = {0,1,2,3,4,5,6,7,8,9};

// 定义数组时,直接对数组部分元素赋值
int array[10] = {0,1,2,3,4};

// 定义数组时,将数组元素全部初始化为0,仅0可以
int array[10] = {0};

int array[10] = {1}; // 只是将第1个元素赋值为1,其他全为0

// 对数组全部初始化,可以省略数组长度,但是不能省略数组下标符号“[]”
int array[] = {0,1,2,3,4,5,6,7,8}; // 设置长度为9的数组
“`

3.2、二维数组
定义格式:
数组类型 数组名[常量表达式][常量表达式];

fe:
int array[3][4];  // 定义二维数组

0 Comments

Leave a Reply

Your email address will not be published. Required fields are marked *