c++primer第二章精华

c++primer第二章

  • c++中初始化和赋值的概念不同,初始化是创建的时候赋值。
  • c++11新增列表初始化,但是赋值类型如果存在丢失信息的风险会报错:
#include<bits/stdc++.h>
using namespace std;
int main() {
	int test{ 0 }; //正确
	int test3 = 3.1415; //正确
	int test2{ 3.1415 }; //报错
}
  • include ""和<>的区别:

<>先去系统目录中找头文件,如果没有在到当前目录下找。所以像标准的头文件 stdio.h、stdlib.h等用这个方法。而"“首先在当前目录下寻找,如果找不到,再到系统目录中寻找。 这个用于include自定义的头文件,让系统优先使用当前目录中定义的。
通俗的说,如果我要调用同一个文件夹下的某个函数或者cpp文件,我需要加上”";

  • 两个cpp文件共用一个变量,extern怎么用? 我不理解为什么加了static就可以了。目前的理解:如果要共用一个变量,有两种方法,可以在cpp文件中声明一个static然后直接用,还有就是在cpp文件中定义,在.h文件中exter\n声明,然后就可以用了,不要在.h中定义(防止误用)。
  • 引用即别名,int &a =b;a是b的别名,他们其实是一个变量。
  • void指针比较特殊,没有办法进行任何操作,包括访问。
  • const和constexpr前者不能说是一个常数,后者可以告诉编译器大胆的把我当常数用。const有顶层和底层,声明指向常量的指针是底层const。
#include<bits/stdc++.h>
//#include "标头.h"
#include "搞.cpp"
using namespace std;
const int func() {
	return 10;
}
int main() {
	int arr[func()];
}
  • decltype()是一个不错的函数,可以将括号中对应的类型相应声明了。比如:
pair<int, int> pir;
decltype(pir) b;  //生成了和B类似的东西
  • c++200页纪念
发布了50 篇原创文章 · 获赞 67 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_41033366/article/details/102963151