基础

1

标准输入输出对象:

cin :istream对象,从标准输入读取数据

cout:ostream对象,将数据写入到标准输出,一般用于正常内容的输出。默认情况下,读取cin或程序非正常终止时会刷新cout

cerr:ostream对象,关联到标准错误,输出程序的错误信息,默认情况下写到cerr的数据是不缓冲的。

clog:ostream对象,关联到标准错误,默认情况下写到clog的数据是被缓冲的。

定义在函数内部的内置类型默认是不初始化的,除非有显式的初始化语句,未初始化的变量的值无意义。

2 变量和基本类型

基本内置类型:算数类型和空类型

算数类型:整型(包括字符类型,布尔类型),浮点型

C++ 算数类型

有符号和无符号

1,当赋给无符号类型一个超出其表示范围的值时,结果是初始值对无符号类型表示数值总数取模后的余数。unsigned char c = -1;//c=255,即255%256=255

2,赋给带符号类型一个超出表示范围的值时,结果是未定义的

3,含有无符号类型的表达式中,有符号类型的值会自动转换为无符号类型

字面值常量

20 十进制;024 八进制;0x24 0X24 十六进制

默认情况下,十进制字面值是带符号数,八进制或十六进制不确定;

3.14 ;3.1415E0; 0.;0e0;.001

默认情况下,浮点型字面值是double

'a' 字符字面值

"hello" 字符串字面值

转义序列

转义序列

指定字面值的类型

指定字面值类型

初始化不是赋值,初始化是创建变量的同时赋予其一个初始值,而赋值的是把对象的当前值擦除,以一个新值代替。

int a  = 0;

int a = {0};

int a{0};

int a(0);

用{}初始化为列表初始化,对于内置类型来说,使用列表初始化若初始值存在丢失信息的风险,编译器会报错。

默认初始化:定义时没有指定初值。如果是内置类型,全局或static变量都被初始化为0,但在函数体内部的局部变量值未定义,不可使用。对于类,由类本身决定其值。

声明规定了变量的类型和名字,定义则还会分配空间(初始化);任何包含了显式初始化的声明即成为定义;

extern double pi = 3.1415;//定义

double pi = 3.1415;//定义

extern double pi;//声明

复合类型:基于其他类型定义的类型,如指针和引用;

引用定义时必须被初始化,是对象的别名,无法重新绑定到另一个对象上。

指向指针的引用

int *p;

int  *&r = p;//r是对指针p的引用

const int &r1 = i;//对常量的引用,不可通过r1改变i的值

const int *p;//指向常量的指针

int *const p;//指针常量

const int *const p;

顶层const:表示指针(或任何对象)本身是常量

底层const:表示指针(或引用)指向的对象是一个常量

常量表达式:

值不会改变(const)并且编译过程中就可以得到计算结果的表达式。

将变量声明为constexpr类型,使编译器来验证变量的值是否是一个常量表达式。此变量是常量并且必须用常量表达式来初始化。

constexpr int a = 12;

constexpr int a = func();//当func()是constexpr函数时,成立

constexpr指针的初始值必须是nullptr或0,或存储于固定地址中的对象。constexpr引用的初始值必须是固定地址中的对象。

constexpr int *p = nullptr;//constexpr修饰p

类型别名:某类型的同义词,简化类型的表示

typedef double othername;

using othername = double;

typedef  double *p;//p的类型是double*

例如:

typedef char *pstring;

const pstring cstr = 0;//cstr 是指向char的常量指针

const pstring *p;//p指向一个指向char的常量指针,不可简单的把pstring展开代入来理解,const修饰pstring,而pstring首先是一个指针

auto 类型说明符

1,auto定义变量必须有初始值,编译器根据初始值推断类型

2,同一条语句声明多个变量,这些变量的初始值的类型必须一样

3,使用引用初始化auto定义的变量,实际上是用引用的对象初始化,则推断为引用的对象的类型

4,auto一般会忽略顶层const,保留底层const。const auto f = ci;//显式顶层const

decltype类型指示符

使用表达式的类型推断类型。

1,decltype(f()) sum;//使用函数的返回值类型

2,decltype(x) sum;//使用变量的类型,注意不可忽略const和引用类型

3,如果表达式的内容是解引用操作,则decltype得到引用类型

decltype((x)) d=y;//d是x的引用类型

decltype(x) d;//只有当x本身是引用类型,d才是引用类型

命名空间的声明

using namespace::name;

using namespace space_name;

头文件不应该包含using声明,避免包含此文件的源文件和using声明的名字冲突

标准库string类型

可变长字符序列 

#include <string>

using std::string;

string初始化
string操作

从流中读取时会忽略空白字符(空格符,换行符,制表符等)

getline从流中读取一行,遇到换行符为止(换行符也读进来了),但换行符不会存到对象中。

string::size_type,类中定义的类型,无符号,可存下任何string对象的大小,可使用auto或decltype推断。

字面值和string对象相加,必须确保运算符两侧至少一个是string对象。字符串字面值不是string类型。

[]返回的是某位置上字符的引用。

#include<cctype>

处理string的字符方法

基于范围的for循环

for (declaration : expression){

statement

}

标准库类型vector

#include <vector>

using std::vector;

vector初始化

vector<T>::size_type

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

推荐阅读更多精彩内容

  • 基本内置类型 算术类型字符整型布尔值浮点数 空类型(void) 算术类型 带符号类型和无符号类型int、short...
    2625K阅读 3,119评论 0 1
  • importUIKit classViewController:UITabBarController{ enumD...
    明哥_Young阅读 3,771评论 1 10
  • 1.项目经验 2.基础问题 3.指南认识 4.解决思路 ios开发三大块: 1.Oc基础 2.CocoaTouch...
    阳光的大男孩儿阅读 4,969评论 0 13
  • 1.在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern “C”? 答:首先,extern是C/C...
    曾令伟阅读 916评论 0 4
  • 在认真补鞋的“张西施” 鞋底磨损得很厉害,我突然想到要去修鞋;想去修鞋,马上就想到了要去朝阳街。 ...
    含辛鱼阅读 919评论 2 4