C++
陶晨毅
曾经想当程序员,现在是互联网产品,公众号同名。
展开
-
C和C++语言static的作用(C++程序设计课本)以及对静态的理解
在C和C++中static的作用如下:(1)static修饰的局部变量(静态局部变量)存储期等于程序执行周期(所以无论调用几次都只能初始化一次)。 (2)static修饰的全局变量(静态外部变量)只能在本文件(程序单元)中访问,不能在其它文件中访问,即便用extern声明。 (3)static修饰的函数只能在本文件(程序单元)中调用,不能被其他文件调用,即便用extern声明。 ...原创 2018-03-21 18:24:41 · 325 阅读 · 0 评论 -
中国大学MOOC 程序设计与算法(三)面向对象部分 笔记
有道云笔记分享链接:http://note.youdao.com/noteshare?id=e7a54f7dbd50da085200bebdbc8446d8&sub=CFBE41FF150048DE95DE17051A6C1E8A原创 2019-03-14 17:34:33 · 498 阅读 · 0 评论 -
C++:数组初始化常见错误之 memset 和 fill (fill_n)
(放在最前面的)总结:memset主要用于字符型数组的初始化,整数型数组初始化为0时可以用memset。memset在初始化动态数组时不能sizeof(数组名),而应该sizeof(元素)*元素个数。fill (fill_n)是超级大法,万物皆可fill。// 1. 字符数组初始化为'A'char a[5];memset(a, 'A', 5); // OK!memse...原创 2019-03-17 16:01:57 · 1214 阅读 · 0 评论 -
C++:sscanf和sprintf的定义和使用
int sprintf ( char * str, const char * format, ... );str - Pointer to a buffer where the resulting C-string is stored (should be large enough)format-sameas format in printf... - additional argum...原创 2019-03-17 11:14:44 · 512 阅读 · 0 评论 -
C++:memset memcpy memmove的定义与区别
一般来说,如以下示例代码所示:使用memset进行初始化 ,使用memcpy进行拷贝操作,使用memmove进行移动。void* memset( void* dest, int ch, std::size_t count );dest - pointer to the object to fillch - fill bytecount -...原创 2019-03-16 22:06:21 · 788 阅读 · 0 评论 -
C++:字符串格式化输入之如何读入Tom Hanks,18,7817(strtok strchr sscanf 函数介绍)
因为很少遇到不能cin>>解决的问题,加上记性很差,所以每次遇到格式化输入就一脸懵逼,要Google才行。感觉实在太丢脸了,所以这次把几个最常用的函数记录在此,希望自己记住[狗头]。char name[20];int id,age;// 第一步:读入bufferchar buf[210];cin.getline(buf,200);// 第二步:定义字符指针c...原创 2019-03-15 14:19:48 · 894 阅读 · 0 评论 -
C++ 类成员的初始化
C++给类成员真·初始化的唯一方式就是成员初始化列表,也即构造函数后面跟冒号的形式。还有一个假·初始化:直接创建类成员(调用类成员的默认构造函数),在类的构造函数里进行赋值操作。Warrior::Warrior(int id, int hp, int atk, CampEnum camp,Time& time, vector<Place*>&places) ...原创 2018-07-10 22:55:57 · 833 阅读 · 0 评论 -
C++自定义类重载运算符出现的一堆问题
今天我在自定义类重载运算符<<时遇到了一个很奇怪的报错......先上最后能够正常运行的代码吧(相关头文件在stdafx.h里面,懒得打了)// point.hclass point{public: point(int x, int y); string printPos(); // "[3,5]" friend ostream &operator&l...原创 2018-05-25 19:45:32 · 1793 阅读 · 0 评论 -
c语言中命令行参数argc,argv[ ]
全文转载:点击打开链接单纯...觉得原文排版太丑了...不方便阅读main(int argc,char *argv[ ]) argv为指针的指针 argc为整数 char **argv or: char *argv[] or: char argv[][]main()括号内是固定的写法。 下面给出一个例子来理解这两个参数的用法:假设程序的名称为prog,(1)当只输...转载 2018-04-13 14:48:20 · 1720 阅读 · 0 评论 -
c/c++ main 函数命令行参数的使用 知识小结
原文转载自:点击打开链接C程序最大的特点就是所有的程序都是用函数来装配的。main()称之为主函数,是所有程序运行的入口。其余函数分为有参或无参两种,均由main()函数或其它一般函数调用,若调用的是有参函数,则参数在调用时传递。C/C++语言中的main函数,经常带有参数argc,argv,如下:int main(int argc, char** argv)int main(...转载 2018-04-13 14:07:00 · 775 阅读 · 0 评论 -
C++ error: cout 不明确的符号
c++问题,为了使用string,我写入了#include<string> using namespace std; 但是cout出现红线说是不明确百度了一下说是吧using namespace std注释掉就行了,果然如此,cout是没报错了,但是string的红线出来了endl的红线也出来了,说是未定义,我很郁闷丫。。接着添加一句:using std::endl;此时e...原创 2018-04-11 20:35:50 · 16390 阅读 · 9 评论 -
C++ 创建大小未知(非常量)的一维数组/二维数组
上一篇blog:C++ 的指针的指针(如int **)和二维数组的关系点击打开链接 int m = 10, n = 20;int **a; // a是指向指针的指针类型(a:int **) int *b[10]; // b是的一维数组的数组名(指向首元素的指针)// 数组元素类型为指向int的指针(首元素是指针)// b是指向指针的指针类型(b:int **)int...原创 2018-03-28 20:42:40 · 7629 阅读 · 0 评论 -
C++ 的指针的指针(如int **)和二维数组的关系
首先可以理解,一维数组的数组名可以等效为指向数组首元素地址的指针,而且是一个特殊的,记录了数据类型大小的指针。因此,当int p[10]时,我们才可以用*(p+i)来等效p[i]。如果没有记录数据类型大小,即便知道首元素的地址,也无法得知(p+i)究竟指向p后面多少乘以i个字节。同时,二维数组实际上可以等效为一个超大的“一维数组”(这不是废话么…连内存都是这样等效的),只不过是一个特殊的,记录了...原创 2018-03-28 20:34:55 · 6215 阅读 · 0 评论 -
中国大学MOOC 程序设计与算法(三)STL部分 笔记
有道云笔记分享链接:http://note.youdao.com/noteshare?id=fd5774a94caf583f1a4a37e78ab61f0d&sub=5EA8C6964DFC4C9E9B4262023926A543原创 2019-04-19 17:36:52 · 488 阅读 · 0 评论