• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C语言 > C++ Primer 第一部分基本语言

C++ Primer 第一部分基本语言

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c++primer第五版,c++primer第六版,c++primer第四版答案,c++primer第五版答案,c++primer plus第六版等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

第1章 快速入门

1,介绍main函数的意义和其基本结构,return语句。不同平台下编译与执行程序。
2,两个类isrteam与otream与它们的实例对象cin,cout,cerr,clog。说明了程序中基本的输入与输出。“<<”与”>>”作为操作符,左操作符是一个iostream 对象,右操作符是一个变量。返回值仍为一个iostream对象,所以输入或输出可以这样 cout<<”a=”<<a<<endl 连着写。
3,C++中的两种注释风格以及需要注意的问题。
4,控制结果:循环(while与for),选择(if…else…)。引入一个计算两个数之间所有整数的和例子。
5,C++最重要的特性:类。说明了在类上定义的一些操作,简单介绍成员函数,用“.”来调用成员函数。
6,书的开头引入的一个书店书目的问题,用一个完整的程序,进一步说明了C++程序中的一些基本元素。当然Scales_item并没有具体的实现代码。

第2章 变量和基本类型

1,执行算术运算时,数据类型的选择:short 一般很少使用,容易产生越界。char类型在一些实现中有时作为signed处理,而有时作为unsigned处理,所以只用char来表示字符是明智之举。所以在大多数的时候使用int就没有问题,在很多机器上int用4个字节存储,足够满足大部分计算的要求。浮点型的选择就很简单了,使用double类型基本不会有什么错误,而且有可能会比float计算代价低。

2,字面值常量。只有内置类型存在字面值。宽字符的类型wchar_t,其实字面值字符常量前面加一个“L”,如wchar_t c=L'A';多行字符串可以用‘\'进行连接,但是\后面不可以有任何空格或制表符,下一行字符串字面值前也不可以有任何空格和制表符。

3,介绍了变量的概念,变量名的命名规范:1)变量名一般用小写字母;2)标识符最好有意义;3)多个词之间用下划线或内嵌的单词第一个字母大写。另外,标识符不要以两个连续的下划线或下划线+大写字母命名。

4,定义对象(变量定义)。变量在定义的时候可以进行初始化,可以选择复制初始化(不要理解为了赋值),也可以选择直接初始化。

5,定义与声明的区别;注意extern的使用。

6,const限定符的用法。const 定义的变量不能修改,所以必须在定义的时候进行初始化。const变量如果想在多文件中使用,必须在定义的时候就声明为外部变量,即用extern。

7,引入与const。

1)非cosnt引用只能绑定到与该引用同类型的对象。

2)const引用则可以绑定到不同但相关的类型的对象或绑定到右值。

8,枚举类型enum。

9,struct与class在创建类时的区别:struct的默认访问级别为public,而class的则为private。

10,说明了C++语言头文件的使用与编写,以及使用定义预处理器变量来避免头文件的重复包含。

第3章 标准库类型

1,命名空间的using声明

using std::string

2,标准库string类型

标准库string类型。string类型和字符串字面值不是同一种类型,注意几种string的构造函数。

用cin读取string类型时,读取并忽略开头所有的空白字符,直至再次遇到空白字符,读取终止。

getline可以读取输入流中的一行,但是不包括换行符。

在string对象比较时,小写字母都比大写字母要大,即大写字母排在前面。

string对象的下标是从0开始到s.size()-1为止。

3,标准库vector类型

C++程序员习惯于优先使用!=而不是<来编写循环判断条件。for(string::size_type i=0; i != s.size(); i++)

C++编译器遇到内联函数时,都是直接扩展相应的代码,而不是实际的函数调用,所以像size这样的小库函数在循环中调用它代价是很小的。

4,迭代器简介

每一种容器都定义了begin与end函数,begin返回容器的第一个元素,end函数返回vector的末端元素的下一个,通常称为超出末端迭代器,表明它指向了一个不存在的元素。如果vector为空,begin返回的迭代器与end返回的迭代器相同。end返回的迭代器实际上是一个“哨兵”。

注意区别:

vector<int>::const_iterator // an iterator that cannot write elements

const vector<int>::iterator // an iterator whose value cannot change

5,bitset类型

几种bitset的构造函数:

bitset<n> b;

bitset<n> b(u); // u是一个usigned long弄的数字,将换算成二进制数

bitset<n> b(s);  // b 是string对象s中含有位串的副本

bitset<n> b(s,pos,n); // b是s中从位置pos开始的n个位的副本

第4章 数组与指针

1,数组

没有所有元素都是引用的数组,数组中定义的类型可以是内置数据类型或类类型或任意的复合类型(引用除外)。

数组的维数只能用在编译阶段就能知道的常量值。const int arSize=num;   int ar[arSize];这样是不行的,因为num变量在运行阶段才会计算出。

如果没有给数组显式地初始化,则会像普通变量一样进行初始化:1)在函数体外定义,则初始化为0;2)在函数体内定义,则其元素无初始化;3)不管数组在哪,如果其元素为类类型,则自动调用该类的默认构造函数。如果该类没有默认的构造函数,则必须为数组的元素提供显式的初始化。

vector对象不能用同类型的数直接进行初始化。假设有如下数组:const int ar_size=5; ar[ar_size]={0,1,2,3,4}>

vector<int> ivec(ar);   // error

vector<int> ivec(ar,ar+ar_size);  // ok

2,指针的引入

不允许把int型的0赋给指针,但是可以把const修饰的0可以赋于指针

cosnt int c_ival=0;  int *p=c_ival;

C++提供了一种特殊类型的指针void*,void*只支持几种有限的操作:1)与另一个指针进行比较;2)向函数传递void*指针或从函数返回void*指针;给另一个void*指针赋值。不允许使用void*指针操纵它所指向的对象。

ptrdiff_t是标准库中定义的用于保存指向同一类型的指针之间减法的结果的类型。

const int* ptr;   // ptr可以指向他变量,但是在没有改变ptr之前,不能用ptr是改变它所指向的变量的值。

int* const ptr; // ptr不能指向其他变量,但是可以改变ptr所指向的变量的值。

注意:

typedef string *pstring;

const pstring cstr;

上面的cstr是一种const指针,指针指向字符串类型的变量。pstring const cstr是一样的。

3,C风格字符串

每一个程序在执行时都占用一块可用的内存空间,用于存放动态分配的对象,此内存空间称为程序的自由存储区或堆。

动态分配的数组不能像数组一样使用初始化列表,只能初始化为元素类型的默认值。int* ar=new int[10]();后面的空括号可以让数组元素都初始化为0。

用delete释放自由存储空间时,如果释放的是数组,则别忘了[]。delete [] ar;

注意string对象的成员函数c_str()可以返回字符串的首指针。但是应该加const。 const char* str=s.c_str();

int* ip[4]:一个指向int的指针数组。

int (*ip)[4]:一个指针4元素数组的指针。

第5章 表达式

1,区别i++与++i

后置操作符需要先保存原来的值,再将i+1,然后返回原来的值;而前置操作符,只需要在原来值上加1,然后返回。所以++i比i++效率更高,当然如果i为int类型时,编译器会对i++进行优化,但如果是其他类类型或指针时就不会了。

2,注意解除引用操作符与++操作符的优先级,在实际代码中为了简洁经常将*(i++)写为*i++。因为++的优先级高于解除引用操作符。

3,在使用条件操作符时,尽量避免写出深度嵌套的条件操作符。另外条件操作符的优先级非常低,在表示式中使用时要注意加括号,比如:cout<<(i<j?i:j);

4,关于sizeof运算符。sizeof的运算结果是编译时的常量,注意下面的代码的值:

5,在复合表达式求值时,要特别注意运算符的优先级与结合性。特别地,!=与==的优先级小于<=,>=等关系运算符。

6,在使用new进行动态内存分配时,有以下几点值得注意:

1)动态创建的对象可以用括号进行初始化,比如:

2)可以delete删除0指针,而且delete删除的是分配到的内存区域,并没有删除指针变量p,p依然指向原来的地址

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C++ primer基础之容器insert
  • C++ Primer 第一部分基本语言
  • C++Primer笔记之顺序容器的使用详解
  • C++Primer笔记之关联容器的使用详解

相关文章

  • 2017-05-28C/C++实现字符串模糊匹配
  • 2017-05-28解读C++编程中类模板的三种特化
  • 2017-05-28Cocos2d-x UI开发之CCControlSlider控件类使用实例
  • 2017-05-28C语言 函数指针(指向函数的指针)详解
  • 2017-05-28C语言打印杨辉三角示例汇总
  • 2017-05-28使用C语言提取子字符串及判断对称子字符串最大长度
  • 2017-05-28用typedef定义类型详细总结
  • 2017-05-28解析C++中的5个存储类的作用
  • 2017-05-28C/C++宏定义的可变参数详细解析
  • 2017-05-28C语言的getc()函数和gets()函数的使用对比

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C语言编程中分配内存空间的相关函数
    • C++嵌套类与局部类详细解析
    • c++中冒号(:)和双冒号(::)的使用说明
    • C语言指针学习经验总结浅谈
    • C语言判断字符是否为可打印字符的方法
    • C++的static关键字及变量存储位置总结
    • C++编程中私有和保护以及公有的类成员访问控制
    • 详解C++中二进制求补运算符与下标运算符的用法
    • static_cast,dynamic_cast,reinterpret_cast,const_cast的区别及用法详解
    • 简单的汉诺塔问题解法代码

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有