C++初始化中变量的初始化方法

之前学习C++的时候没有记得做好笔记,现在重新补做!!!!!

1、普通变量的初始化

因为C语言是C++子集,自然包含了所有C语言的特性,所以在C语言的基础之上又新增了属于C++自己特性的初始化方式,以C++11标准来说明:

(1)int a = 10;           // 这种是最熟悉的方式,是从C中继承过来的

(2)int a (10);             // 使用一个小括号将初始化的数值括起来,a与小括号之间有无空格都行

(3)int a {10};            // 使用一个中括号将初始化的数值括起来,a与中括号之间有无空格都行

2、数组的初始化

一定要注意,不管是在C或者是C++中,数组必须是在定义的时候才能使用初始化,这个与普通变量是不一样的。

(1)int a[5] = {0, 1, 2, 3, 4};     // 这种方式在C中是最常见的,在C++中同样也是支持的,但是并不是使用最多的

(2)int a[5] {0, 1, 2, 3, 4};      // 这种方式应该在C++中用的是最多的,同样这里的空格有无都行

(3)int a[5] = {};          // 表示将数组中所有元素初始化为0

(4)int a[5] {};           // 表示将数组中所有元素初始化为0

(5)int a[5] {0};

(6)int a[5] {1};           // 表示第一个元素为1,其余全为0

3、列表初始化用在new表达式中

int *ar = new int[4] {0, 1, 2, 3};      // 表示定义一个int类型的指针,指向一个堆内存中分配的数组的首地址。

最后再说一个C++中的随用随定义的特性,也就是在哪里使用变量就在哪里定义就行了,而不必像C中那样必须全部定义到最前面,当然在C中也并不是说只能把变量定义在最前面,

这个与编译器有关,不同的编译器继承了不同的C标准,例如在Linux下的gcc也是支持随用随定义的特性的。

时间: 2024-10-27 13:57:02

C++初始化中变量的初始化方法的相关文章

[51单片机] Keil C51中变量的使用方法详解

引言    8051内核单片机是一种通用单片机,在国内占有较大的市场份额.在将C语言用于51内核单片机的研究方面,Keil公司做得最为成功.由于51内核单片机的存储结构的特殊性,Keil C51中变量的使用与标准C有所不同.正确地使用变量,有利于获得高效的目标代码.下面详细介绍Keil C51中变量的使用方法. 1 CPU存储结构与变量的关系    变量都需要有存储空间,存储空间的不同使得变量使用时的工作效率也不同.    标准C的典型运行环境是8086(含IA-32系列)内核,其存储结构是CP

C++类中变量定义初始化总结

1.类成员不可以在定义时初始化 2.const类型的成员必须在初始化化列表进行初始化:一般变量在在初始化列表中初始化的顺序决定于定义的顺序 #include<iostream> using namespace std; class A { private: int n1; int n2; public: A():n2(0),n1(n2+2){} void Print(){ cout << "n1:" << n1 << ", n2

C++中变量自动初始化的问题

C++中有一些变量在如果没有赋初值会被编译器自动赋值为0,但有的变量又不会这样,而得到一个随机数,下面具体讨论一下: 首先看一下C++中的几个存储区:1.栈区:由编译器自动分配释放 ,存放函数的参数值,局部变量的值等.其操作方式类似于数据结构中的栈.     2.堆区:一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 .注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵.     3.全局区(静态区)(static):全局变量和静态变量的存储是放在一块的,初始化的全局变

python 中变量的命名方法

从网上找到django中python的命名规范 Python  规范 代码的布局  编码 所有的Python脚本文件都应在文件头标上“# -*- coding:utf-8 -*-”.  缩进 4个空格一个缩进层次 空行 适当的空行有利于增加代码的可读性,加空行可以参考如下几个准则: (1) 在类.函数的定义间加空行: (2) 在import不同种类的模块间加工行: (3) 在函数中的逻辑段落间加空行,即把相关的代码紧凑写在一起,作为一个逻辑段落,段落间以空行分隔 换行        语句比较长,

从一段代码看java对象初始化中属性的初始化

在java代码中,当new一个对象的时候,先是创建了一个属性为零值的对象,然后进行初始化: ```javapublic class Test { private Date date = new Date(); public static void main(String[] args) throws InterruptedException { Test t = new Test(); for (int i = 0; i < 5; i++) { Thread.sleep(1000); Syste

sed中变量的使用方法

一般在sed 中替换都用单引号,如下边sed -in-place 's/8080/8001/g' /home/work/server.xml但是如果需要把8001改成变量,如sed -in-place 's/8080/$port/g' /home/work/server.xml这样就不成功.此时需要把单引号改成双引号,如下边例子$port=8001sed -in-place "s/8080/$port/g" /home/work/server.xml

关于C#中的变量的初始化问题浅谈

C#变量初始化是C#强调安全性的另一个例子.简单地说,C#编译器需要用某个初始值对变量进行初始化,之后才能在操作中引用该变量.大多数现代编译器把没有初始化标记为警告,但C#编译器把它当作错误来看待.这就可以防止我们无意中从其他程序遗留下来的内存中获取垃圾值. C#变量初始化的操作中有两个方法可确保变量在使用前进行了初始化: ◆变量是类或结构中的字段,如果没有显式初始化,创建这些变量时,其值就默认是0(类和结构在后面讨论). ◆方法的局部变量必须在代码中显式初始化,之后才能在语句中使用它们的值.此

C#中的自动属性、隐式类型var、对象初始化器与集合初始化器、扩展方法

1.自动属性(Auto-Implemented Properties) //以前的写法 .net2.0 private string _userName; public string UserName { get { return _userName; } set { _userName= value; } } //现在 只适合3.5以上 public string_userName {get;set;} 2.隐式类型var 它是在编译已经能确定变量的类型,是根据后面的值自动推断类型,编译时把推

caffe中权值初始化方法

首先说明:在caffe/include/caffe中的 filer.hpp文件中有它的源文件,如果想看,可以看看哦,反正我是不想看,代码细节吧,现在不想知道太多,有个宏观的idea就可以啦,如果想看代码的具体的话,可以看:http://blog.csdn.net/xizero00/article/details/50921692,写的还是很不错的(不过有的地方的备注不对,不知道改过来了没). 文件 filler.hpp提供了7种权值初始化的方法,分别为:常量初始化(constant).高斯分布初