最近开始学习数据结构和c++相关内容,随手记下一些报错、警告和一些知识点,若有错误还望朋友们多多指教!
1、
#include <iostream.h>
报错:无法打开包括文件“iostream.h”
原因:版本问题,98年之后版本都不加.h
解决办法:
#include <iostream>
2、报错:“cout”“endl”未声明的标识符
原因:没有声明命名空间
解决办法:使用标准命名空间,常用的函数都在std内
using namespace std;
3、缺省:系统默认状态
4、类的继承访问特性:
基类的访问特性 | 类的继承特性 | 派生类的访问特性 |
Public Protected Private | Public | Public Protected No access |
Public Protected Private | Protected | Protected Protected No access |
Public Protected Private | Private | Private Private No access |
5、作用域标识符(::):表示某个成员属于哪个作用域
6、引用与指针
引用:变量a和b指向同一块内存,b相当于a的一个别名
int a = 3;
int &b = a;
指针:pA存储的是a的地址,但本身在另一块内存中
int a = 3;
int *pA = &a;
7、函数是否实现要看有没有{},而不是看{}里有没有内容,没有内容叫空实现
8、报错:C4018:有符号无符号不匹配
解决办法:将int变量修改为unsigned int变量即可
9、警告:取消对NULL指针“…”的引用 或者 “…”可以是0
原因:若指针为空,可能会导致内存泄露或异常
解决办法一:用assert()检查该指针,记得加上头文件
#include <assert.h>
解决办法二:直接用if判断一下该指针是否为NULL,若不是则直接执行下面的代码
10、警告:写入“…”时缓冲区溢出
解决办法:将指针变量p[i]改成*(p+i)
11、memset()函数,初始化函数,将某一部分全部设定成指定的值,可以进行较快的清零操作
12、visual studio批量加注释:选中代码,按Ctrl+K+C
撤销注释:选中代码,按Ctrl+K+U
或者VS右上方工具栏按键,下图所示中间两个
13、换行
endl:进行缓冲区的更新,效率比\n要低
\n:效率较高,加单引号双引号没区别,单引号处理的是字符,双引号处理的是字符串所以双引号会稍慢
14、有空头链表和无空头链表
struct Node stHead;
//stHead是实例对象,是一个完整的空间
struct Node* pHead;
//指针变量,需要指向空间
未完待续哦~