第二章 变量和基本类型

通常将8位的快作为一个字节.32位或者4个字节作为一个"字"(word);
 
在大多数机器上,使用int类型进行整型计算不易出错.就技术上而言,int类型用16位表示---这对大多数应用来说太小了.实际应用中,大多数通用机器都是使用和long类型一样长的32位来表示int类型.
 
为了兼容C语言,C++中所有的字符串字面值都由编译器自动在末尾添加一个空字符.
如:  'A' 表示单个字符A,然而"A"表示包含字母A和空字符两个字符的字符串.
 
有一些非法的表达方法:
1. "two" L"some" 非法.因为字符串字面值与宽字符串字面值的连接是未定义的.
2.1024f 非法:因为整数后面不能带后缀f.error: invalid suffix "f" on integer constant|
3.3.14UL 非法:因为浮点字面只能带后缀Uerror: invalid suffix "U" on floating constant|
 
C++ 中的标识符都是大小写敏感的.
下面定义了4个不同的标识符:
int somename,someName,SomeName,SOMENAME;
 
变量命名习惯:
1.变量名一般用小写.通常写成index,而不写Index或者INDEX;
2.标识符应使用能帮助记忆的名字.
3.包含多个词的标识符可以在每个词之间添加一个下划线,或者每个内嵌的词的首字母大写.如student_loan或studentLoan
 
初始化和赋值的问题
在C++中理解"初始化不是赋值"是必要的.初始化指创建变量并给它赋初始值,而赋值则是擦除对象的当前值并用新值代替。
C++支持两种初始化变量的形式: 
1.复制初始化(copy-initializationi)  int ival = 1024;
2.直接初始化(direct-initialization) int ival(1024);
使用=来初始化变量使得许多c++编程新手感到迷惑,他们很容易把初始化当成是赋值的一种形式.但是在c++中初始化和赋值是两种不同的操作.c++中只有在编写非常复杂的类才会凸显这两者之间的区别.直接初始化语法更灵活且效率更高.
 
常量在定义时必须初始化
因为常量在定以后就不能被修改,所以定义时必须初始或:
const std::string hi = "hello";//ok:initialized;
const int i,j=0;//error:i is uninitialized const;
 
const引用可以初始化为不同类型的对象或者初始化为右值,如字面值常量:
int i =42;
const int &r =42;
const int &r2= r+i;
注意到const引用是只读的.
 
不要忘记类定义后面的分号,这是个普遍的错误!
 
 
在函数体外定义的变量都初始化为0,在函数体里定义的内置类型变量不进行自动初始化..
 
 
 
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
string global_str;
int global_int;
int main()
{
int local_int;
string local_str;
cout<<global_str<<endl;      //空
cout<<local_str<<endl;         //空
cout<<global_int<<endl;//0
cout<<local_int<<endl;         //未初始化
 
return 0;
}
原文地址:https://www.cnblogs.com/crazycodehzp/p/3237765.html