C++ 基本语法

——注释

单行注释,多行注释都与java相同

——数据类型

七种基本的数据类型  bool char int float double void wechar_t

一些基本类型可以使用一个过多个类型修饰符进行修饰

各种变量类型在内存中存储值时需要占用的内存 以及该变量所能存储的最大值和最小值

typedef声明 为一个已有的类型取一个新的名字

枚举类型  是C++中的一种派生数据类型,他是由用户定义的若干枚举常量的集合

——变量类型

变量其实只不过是程序可操作的存储区的名称

C++也允许定义各种其他类型的变量,比如枚举、指针、数组、引用、数据结构、类等

C++中的左值和右值

——C++变量作用域

作用域是程序的一个区域,一般来说有三个地方可以定义变量

局部变量-在函数或一个代块内部声明的变量

形式参数-在函数参数定义声明的变量

全局变量-在所有函数外部声明的变量

——C++常量

常量是固定值,在程序执行期间是不会改变的,这些固定的值又叫做字面量

常量可以是任何的基本数据类型,可分为整型数字,浮点数字,字符,字符串和布尔值

常量就像是常规的变量,只不过常量的值在定义后不能修改

定义常量有两种简单的方式

1-使用#define预处理器

2-使用const关键字

宏定义#define和常量const的区别

——C++修饰符类型

C++允许在char、int和double数据类型前防止修饰符

修饰符用于改变基本类型的含义,所以它更能满足各种情境的需求

singed

unsinged

long

short

C++中的类型限定符

类型限定符提供了变量的额外信息

const—const类型的对象在程序执行期间不能被修改改变

volatitle—该修饰高数编译器,变量的值可能以程序未明确指定的方式改变

restrict—由该修饰符修饰的指针是唯一一种访问它所指向的对象的方式

C++存储类

存储类定义C++程序中变量/函数的范围(可见性)和生命周期。这些说明符放置在它们所修饰的类型之前

auto

register

static—static存储类指示编译器在程序的生命走起内保持局部变量的存在,而不需要在每次它进入和离开作用域时进行创建和销毁,因此使用static修饰局部变量可以在函数调用之间保持局部变量的值

extern—存储类用于提供一个全局变量的引用,全局变量对所有的程序文件是可见的,当使用extern时,对于无法初始化的变量,会把变量名只想一个之前定义过的存储位置

mutable—mutable说明符仅适用于类的对象

thread_local(C++11)

C++运算符

运算符是一种概述编译器执行特定的数学或逻辑操作的符号

C++内置了丰富的运算符

算数运算符—加减乘除

关系运算符—大小

逻辑运算符—与或非

位运算符

赋值运算符

杂项运算(比C#多出一项)

运算符的优先级

C++循环

循环类型:

while循环—当给定条件为真时,重复语句或语句组。他会在执行循环主体之前测试条件

for循环—

do…while循环—

嵌套循环—

循环控制语句:

break语句

continue语句

goto语句

C++ 判断

判断结构要求指定一个或多个要评估或测试的条件,以及条件为真时要执行的语句和条件为假时要执行的语句

if—

if…else —

嵌套if语句—

switch —

嵌套switch语句—

C++ 函数

函数是一组一起执行一个任务的语句

每个C++程序都至少有一个函数,即主函数main(),所有简单的程序都可以定义其他额外的函数

函数声明告诉编译器函数的名称、返回类型和参数。函数定义提供了函数的实际主体

C++标准库提供了大量的程序可以调用的内置函数

函数声明—函数声明会告诉编译器函数名称及如何调用函数。函数的实际主体可以单独定义

调用函数—

函数参数—

如果函数要使用参数,则必须声明接受参数数值的变量,这些变量称为函数的形式参数

形式参数就像函数内的其他局部变量,在进入函数时被创建,退出函数时被销毁

当调用函数时,有两种向函数传递参数的方式:

传值调用-修改形式参数对实际参数没有影响

指针调用-修改形式参数对实际参数有影响

引用调用-修改形式参数对实际参数有影响

参数的默认值—

在参数列表中后边的每一个参数指定默认值,当调用函数时,如果实际参数的值留空,则使用这个默认值,如果指定了值,则会忽略默认值,使用传递的值

Lamabda函数与表达式—

C++数组

存储一个固定大小的相同类型元素的顺序集合

数组中的特定元素可以通过索引访问

所有的数组都是由连续的内存位置组成

最低的地址对应第一个元素,最高的地址对应最后一个元素

在C++中声明一个数组需要指定元素的类型和元素的数量

C++数组详解-

多维数组-多维数组最简单的形式是二维数组

指向数组的指针-指定不带索引的数组名称来生成一个指向数组中第一个元素的指针

传递数组给函数-指定不带索引数组名称来给函数传递一个指向数组的指针

从函数返回素组-从函数返回数组

C++字符串

提供了以前两种类型的字符串表现形式

C风格字符串

C++引入的string类类型

C++指针

指针是一个变量,其值为另一个变量的地址

即内存位置的直接地址

在使用指针存储其他变量地址之前,对其进行声明

声明其数据类型和指针变量的名称

*星号是用来指定一个变量是指针

C++使用指针

使用指针会频繁的进行以下几个步骤:

1 定义一个指针变量

2 把变量地址赋值给指针

3 访问指针变量中可用的地址的值

这些是通过使用一元运算符* 来返回位于操作数所指定地址的变量的值

C++指针详解

C++NUll指针-NUll指针是一个定义在标准库中的值为零的常量

C++指针的算数运算-可以对指针进行四种算术运算

C++指针vs数组

C++指针数组-可以定义用来存储指针的数组

C++指向指针的指针-允许指向指针的指针

C++传递指针给函数-通过引用或地址传递参数,使传递的参数在调用函数中被改变

C++从函数返回指针-函数返回指针到局部变量、静态变量和动态内存分配

C++引用

引用变量是一个别名,它是某个已存在的变量的另一个名字

一旦把引用初始化为某个变量,就可以使用该引用名称或变量名称来指向变量

引用和指针的三个不同点:

1-不存在空引用,引用必须连接到一块合法的内存

2-一旦引用被初始化一个对象,就不能被指向到另一个对象。指针可以在任何时候指向到另一个对象

3-引用必须在创建时被初始化。指针可以在任何时间被初始化

把引用作为参数——C++支持把引用作为参数传给函数,这比传一半的参数更安全

把引用作为返回值——可以从C++函数中返回引用,就像返回其他数据类型一样

C++基本的输入输出

字节流是从设备流向内存,这叫输入操作

字节流是从内存流向设备,这叫输出操作

标准输出流(cout)

预定义对象cout是ostream类的一个实例

标准输入流(cin)

预定义对象cin是istream类的一个实例

标注错误流(cerr)

标准日志流(clog)

C++数据结构

结构体-struct语句

访问结构成员使用成员访问符(.)

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

推荐阅读更多精彩内容

  • 前言 把《C++ Primer》[https://book.douban.com/subject/25708312...
    尤汐Yogy阅读 9,447评论 1 51
  • 指针是C语言中广泛使用的一种数据类型。 运用指针编程是C语言最主要的风格之一。利用指针变量可以表示各种数据结构; ...
    朱森阅读 3,387评论 3 44
  • 重新系统学习下C++;但是还是少了好多知识点;socket;unix;stl;boost等; C++ 教程 | 菜...
    kakukeme阅读 19,425评论 0 50
  • 首先,很多人认为内向的人是沉默、孤僻的。 事实上,心理学中的“内向”定义与我们的日常认识有些区...
    一句励志的语录阅读 275评论 0 1
  • 室内线缆,正如其名所寓,是为室内应用而制造的线缆-即在该环境中它们不能浸于液态水中。不比室外线缆,室内线缆的外皮未...
    朝阳电缆阅读 588评论 0 1