IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C++ Primer学习记录(3) -> 正文阅读

[C++知识库]C++ Primer学习记录(3)

昨天简单谈了一点变量定义形式,以及各个部分的意义与功能,今天就接着昨天的话题继续吧。

一.关于初始化

初始化主要采用以下两种:

(1)直接初始化

(2)复制初始化

形式如下:

int a(6);     //直接初始化(推荐使用)

int b = 6;    //复制初始化

二者的功能相同,都是在定义变量时给与一个初值。而这个初值的形式可以有多种形式:

#include<iostream>

int csh()			//定义一个返回值为6的函数 
{
	return 6;
}

int main()
{
	int a(6);		//定义一个初值为6的变量a 
	
	int b=6;		//复制初始化,初值为6 
	int c(a);		//直接初始化,以a作初值,即6 
	int d=csh();	//复制初始化,以函数返回值作初值 
    int e=a+csh();  //复制初始化,以计算式结果为初值	

    return 0;
}

当我们在定义一个需要使用的变量时,最好是人为初始化,不要过分依赖编译器调用的默认构造函数,容易引起数据混乱,甚至在一些比较老的编译器中会被判作不合法。

在C++11标准中,初始化的方式还有列表初始化等。也正因为初始化的多样性,使得初始化的问题比较复杂,目前暂不作深究,待之后再细谈。

二.关于定义与声明

(1)什么是声明?

首先需要了解,C++语言支持分离式编译机制,就是将程序分为多个逻辑块编写,然后进行相对独立的编译。这个时候,分离的一部分程序若要用到其他程序的变量或函数等,则要进行声明,在声明后,则可在当前部分程序使用其它部分程序的内容。由于对象的作用域限制,跨程序声明并使用的变量必须是全局变量。

在代码量比较庞大、逻辑结构相对复杂的情况下,声明的作用将得到一定的体现。

(2)声明的形式:在主函数外进行声明:extern(关键字)数据类型?变量名

extern int a;

(3)声明与定义的区别:

#include<...>
...

int a=6;          //定义,创建int型变量a,并初始化为6
extern int b;     //声明,未创建变量
extern int c = 6; //定义,声明时不能进行初始化操作

int main()
{
    ......
}

由上方代码可推出:

定义的过程是开辟一个对应类型的的空间,将这个空间命名(变量名),并在这个空间中对变量进行操作;

而声明的过程只是借用了在其他地方创建的变量,并没有开辟空间进行操作等。一但有了实际操作(初始化等),即便有了关键词extern,这条语句也将被归属于定义。但是在定义时最好不要写extern关键字,即便编译通过,也容易引起理解混乱。

需要注意的是,变量只能定义一次,而却可以被多次声明。

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-01-08 13:48:12  更:2022-01-08 13:48:41 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 10:39:57-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码