C++ primer 第一部分C++基础(1-7章) 不熟悉的知识点 小结

P58 constexpr 和常量表达式

常量表达式 是指值不会改变 并且 在编译过程 就能得到计算结果的表达式;

字面值属于常量表达式;

用常量表示式初始化的const对象 也是常量表达式;

constexpr变量

C++11:允许将变量声明为constexpr类型以便 由编译器来验证变量的值是否是一个常量表达式;

一般来说,如果你认定变量是一个常量表达式,那就把它声明成constexpr类型;

P214 constexpr函数:是指能用于常量表达式的函数

  • 函数的返回值类型及所有形参的类型都得是 字面值类型;
  • 函数体中必须有且只有一条return语句.

constexpr函数不一定返回常量表达式!!!

P62 decltype 类型说明符

C++11:decltype的作用是选择并返回操作数的数据类型;

decltype( f() )    sum = x;
//sum的类型就是函数f的返回类型;

decltype 与 引用:

切记:decltype( (variable) )  双层括号,结果永远是引用 

// decltype的结果可以是引用;
int i =23, *p = &i , &r = i;
decltype (r+0) b;
// r+0 结果是一个int;√

decltype (*P) c;    // 错误!!!
//如果表达式内容为 解引用操作,则decltype 将得到一个引用类型,引用类型必须初始化;

P109 C风格字符串

char *p = "abcdef"; //空字符‘\0‘结尾;

C标准库的String函数

// C风格字符串的函数
// #include <cstring>
strlen(p)               返回p的长度,空字符不计算在内;

strcmp(p1,p2)           比较p1,p2是否相等:若p1=p2,返回0,p1>p2,返回正值,p1<p2,返回负值

strcat(p1,p2)           将p2附加到p1之后,返回p1;

strcpy(p1,p2)           将p2拷贝给p1,返回p1;

与旧代码的接口

string s("hello world!");
  • 允许使用以空字符结束的字符数组来初始化string对象,或为string对象赋值;
  • 在string对象的加法运算中,允许以空字符结束的字符数组作为其中一个运算对象(不能都是);
  •   
  • 不能用string对象直接初始化指向字符的指针;
  • 但使用string专门提供的 c_str 成员函数可以完成该功能;
char *str = s;    //error! 不能用string对象初始化 char*;

const char *str = s.c_str();    // 正确!!!
时间: 2024-10-14 18:08:53

C++ primer 第一部分C++基础(1-7章) 不熟悉的知识点 小结的相关文章

《C++ Primer 5th(中文版)》“概览的概览”之第一部分——C++基础,第二章

C++ Primer已经快读完了,但这本书光读一遍是绝对不行的.至少读两遍,把大部分可操作的习题做一遍,才能记住大部分细节.在这里,我想对C++第一部分--C++基础进行一次非常非常非常简略但结合核心部分的整合,带大家一览C++大略(很浅的那一部分),而不是迷失于细节. 第二章 变量和基本类型 2.1 基本内置类型 1.C++定义了算术类型和空类型.常见的类型有bool, char, short, int, long, long long, float, double, long double,

下载大数据实战课程第一季Python基础和网络爬虫数据分析

python语言近年来越来越被程序相关人员喜欢和使用,因为其不仅简单容易学习和掌握,而且还有丰富的第三方程序库和相应完善的管理工具:从命令行脚本程序到gui程序,从B/S到C/S,从图形技术到科学计算,软件开发到自动化测试,从云计算到虚拟化,所有这些领域都有python的身影:python已经深入到程序开发的各个领域,并且会越来越多的人学习和使用. 大数据实战课程第一季Python基础和网络爬虫数据分析,刚刚入手,转一注册文件,视频的确不错,可以先下载看看:链接:http://pan.baidu

C++ Primer第一章(submit 转换格式)

1 ********************************************************************** 2 C++ Primer第一章 笔记 3 ********************************************************************** 4 序言(书籍推荐): 5 1.<C++标准程序库> 6 2.Scott Meryers <Effective C++> 7 3.Anothony Will

【Python基础教程第2版】——第一讲:基础知识

1.长字符串:(用三引号如'''或者"""来引起来) >>> print """This is a very log string.It continues here.And it's not over yet."Hello world!"""" This is a very log string.It continues here.And it's not over yet.&

第一部分软件工程基础[专业课考试]

第一部分软件工程基础 考试题型:概念问答题.实践案例题总分:50分一.软件过程软件过程的概念:经典软件过程模型的特点(瀑布模型.增量模型.演化模型.统一过程模型):过程评估与CMM/CMMI的基本概念:敏捷宣言与敏捷过程的特点. 二.软件需求软件需求的概念:需求工程的基本过程:分层数据流模型:用例和场景建模及其UML表达(用例图.活动图.泳道图.顺序图):数据模型建模及其UML表达(类图):行为模型建模及其UML表达(状态机图). 三.软件设计与构造软件体系结构及体系结构风格的概念:设计模式的概

Jquery真的不难~第一回 编程基础知识

Jquery真的不难~第一回 编程基础知识 回到目录 前言 说Jquery之前,先来学习一下Javascript(以后简称为JS)语言中的基础知识问题,其时对于每种编程语言来说基础知识都是大同小异的,对变量,函数,条件语句块,循环语句块等等,而对于每种语言在写法上到是显得各有不同,如JS里在定义变量时,你要用var去声局部变量的声明,而对于弱类型的语言JS来说,你也可以不加var,但不加它会认为这个变量为全局变量,这是要注意的. 变量 在程序运行过程中,其值可以发生改变的(呵呵,10多年前书上的

第一天---HTML基础学习

HTML(hyper text markup language) HTML不是一种编程语言,而是一种标记语言(markup language),标记语言是一套markup tag(标记标签),HTML使用markup tag来描述网页. markup tag(通常被称作HTML tag) markup tag是由尖括号包围的关键词,例如<html>,一般成对出现,例如<html></html>,其中<html>为start tag,</html>

各位大佬Python的第一部分道基础题已经整理好了,希望大家面试的时候能用的上。

Python的第一部分道基础题,希望大家面试的时候能用的上. 1.为什么学习Python? Python是目前市面上,我个人认为是最简洁.最优雅.最有前途.最全能的编程语言,没有之一. 2.通过什么途径学习的Python? 通过自学,包括网上查看一些视频,购买一些相关专业的书籍. 3.Python和Java.PHP.C.C#.C++等其他语言相比? Python:轻量级.易学.自由/开放源码软件.可移植性.支持面向对象.丰富的库.规范的代码. Java:优点:开源性,功能强大,库多 缺点:编译速

C++ Primer Plus 第六版 第16章 string类和标准模板库

1.string实际上是模板具体化basic_string<char> 的一个typedef,有默认参数,所以省略了初始化参数 2.size_type是一个依赖于实现的整形 string将string::npos定义为字符串的最大长度 3.string类的构造函数P656 4.对于c-风格字符串,3种输入方法:cin>>   cin.getline(),cin.get 对于string   ,2种输入方法:cin>>,getline(cin,string对象) 5.st