变量与基础

1.通常存储器中一个字节为8位,一个字word为32位。每一个字节和一个地址关联。
2.C++只规定了每一种算数类型的最小存储空间,但并不阻止编译器使用更大的存储空间。

(1)整型分三种:
字符类型 char:单个机器字节byte-8bit
整数类型:默认为带符号的signed,unsigned默认为unsigned int。无符号型若为8位,则取值范围是0到255。若为符号型,则取值范围为-128到127。其中10000000表示-128,00000000表示0。如果赋值超过取值范围,编译器会取该值对256求模后的值。
int:单个机器字长word-32bit(最小存储空间为16bit)
short:半个机器字长-16bit(最小存储空间为16bit)
long:单个机器字长-32bit(最小存储空间为32bit)
布尔类型:表示真值true或者false。可以把算数类型的任何值赋给bool对象。0值算数类型代表false,任何非0的都代表true。
(2)浮点型
单精度浮点型 float:32bit表示,只能保证6位有效数字。
双精度浮点型 double:64bit表示,可以表示10位有效数字。

3.字面值常量:只能用它的值称呼他,而且值不能修改。

(1)只有内置类型存在字面值,没有类类型的字面值,因此不会有标准库类型的字面值。
(2)字符串字面值:自动在末尾添加一个空字符。因此字符字面值'A'和字符串字面值"A"是不同的。

4.变量:提供了程序可操作的有名字的存储区。

(1)每一个变量,或者称为对象,都有特定的类型,该类型决定了变量的内存大小和布局,能够存储于该内存中的值的取值范围以及可应用在该变量上的操作集。
(2)变量不能称为右值,只能是赋值语句的左值。字面值不能称为赋值的左值,只能是右值。

5.对象:内存中具有类型的区域。跟数据的类型,有无名字,可读可写无关。

(1)定义对象:定义对象,即指定与对象相关联的类型,决定分配给对象的存储空间和操作。
(2)初始化:初始化不是赋值。可以直接初始化(用括号),可以复制初始化(用等号)。对类类型初始化时,需要用到特殊的成员函数,称为构造函数。当没有提供初始化式时,程序自动调用默认构造函数进行初始化。而如果内置类型变量没有初始化,函数体外定义的变量自动初始化为0,而函数体内的不进行自动初始化,会成为未定义行为。

6.声明与定义:

extern声明不是定义,也不分配存储空间...
变量可以声明多次,但只能定义一次...
当extern声明位于函数外部时,才可以含有初始化式...
extern int i;
许多文件中使用的变量需要有与定义分离的声明...

7.名字的作用域scope:在for循环中定义的变量,不能在main函数其他地方使用,具有语句作用域。

8.const限定符:把一个对象转变为一个常量。

虽然该变量仍然是一个左值,但不可修改,而且在定义后必须初始化。通常在全局作用域声明的const变量是定义在该文件内的局部变量。若要全局所有文件都可以访问,则需要声明extern。

const int bufSize = 512;

9.引用:引用只是对象的另一个名字。必须初始化为相同类型的一个对象。

int ival = 1024;
int &refVal = ival;

const引用:是指向const对象的引用。可以初始化为右值。而且可以绑定到不同但相关的类型的对象上。

int i = 2;
const int &r = 42;
const int &r2 = r+i;
double dval = 3.14;
const int &ri = dval;

10.typedef名字:给了数据类型另一个名字。
typedef double wages;
typedef int scores;
typedef wages salary;

11.枚举:为某些属性定义一组可选择的值。
enum open_modes{input, output, append}

(1)定义和初始化:open_modes是枚举类型名,input等是枚举成员。默认的第一个枚举成员赋值为0,后面的每个枚举成员赋值比前面的大1。
(2)枚举成员是常量,且成员值可以是不唯一的。

enum Points { point2d = 2, point2w,
                       point3d = 3, point3w};

(3)每个enum都定义一种唯一的类型。可以用一个枚举成员去赋值,也可以用一个对象去赋值。用一个枚举成员赋值很好理解,就是指这个枚举对象目前存在它可选状态中的哪个。用另一个枚举对象去赋值表示他们具有相同的可选状态。

Points pt3d = point3d; // point3d is a Points enumerator
pt2w = pt3d;//both are objects of Points enum type

12.类类型:每个类都定义了一个接口和一个实现。
接口表示该类需要执行的操作,实现表示该类所需要的数据。

(1)定义类:类体可以是空。操作和数据时类的成员。操作称为成员函数,数据称为数据成员。类可以包含0个到多个private或public的访问标号。定义了类就定义了一种新的类型,程序就可以定义该类型的变量。

class Sales_item{
public:
    // operation on Sales_item objects will go here
private:
    std::string isbn;
    unsigned units_sold;
    double revenue;
};

(2)定义变量和数据成员的区别:只能指定数据成员的名字和类型,不能在定义时初始化,需要用构造函数来给类进行初始化。
(3)public和private区别:不是类的组成部分的代码不能访问private成员。
(4)struct和class的区别:struct默认为public,class默认为private。

13.头文件:

(1)头文件一般包含:类的定义,extern变量的声明和函数的声明。
(2)头文件用于声明而不是定义。类,const对象和inline函数例外。const对象可以定义在头文件中,是因为它的作用域只在一个文件,因此不会出现重复定义的问题。只要在需要使用时包含头文件即可。
(3)头文件经常需要其他头文件,会造成多重包含,导致一些类和对象多次被定义,因此使用预处理器变量定义头文件保护符来避免这种情况。

#ifndef SALESITEM_H
#define SALESITEM_H
// definition of Sales_item class and functions goes here
#endif

测试SALESITEM_H是否未定义。每个文件的预处理器变量不能重名。
(4)#include的方式区别:
<>认为头文件是标准头文件,编译器毁在预定的位置查找头文件,若是" "则会到源文件所在的路径去查找头文件。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,635评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,628评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,971评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,986评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,006评论 6 394
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,784评论 1 307
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,475评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,364评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,860评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,008评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,152评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,829评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,490评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,035评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,156评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,428评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,127评论 2 356

推荐阅读更多精彩内容