C/C++
文章平均质量分 67
山人自有锦囊妙计
在职马龙
立志成为大飞哥一样的人
展开
-
C++基础总结
函数static原创 2022-02-18 11:11:56 · 399 阅读 · 0 评论 -
C/C++文件操作
C语言中一般返回0表示成功(正常 0 异常 -1),fopen和fclose函数都遵循这个规则数据最终以二进制的数字存储使用UltraEdit软件打开文本,按下ctrl+H能切换到16进制显示写入文件名:盘符+冒号+反斜杠(盘符可大写可小写)不加盘符,即没有目录就是相对路径,直接保存在工程目录下加了盘符则表示的决定路径,存储在指定路径下 char buf[] =...原创 2019-04-16 16:39:58 · 577 阅读 · 0 评论 -
C/C++编程技巧
1、在控制台多次输入,不利于调试时直接在mian中赋好值,等打印结果正确后再用scanf语句代替2、可以将子函数写在main后面的要求:函数必须在前面声明3、不知道某个类型的变量是多大字节,直接用sizeof(类型),不一定要死记各类型的字节数4、一个个子函数调试,调试通过后再写下一个子函数,不要胃口过大(循序渐进)5、大括号只shift+只按左边,然后...原创 2019-04-16 15:46:16 · 471 阅读 · 0 评论 -
C/C++变量的生命周期和static
1、main中有{},{}结束时变量的生命期结束生命周期与析构函数的关系:当一个对象/变量的生命周期结束时,析构函数会自动被调用#include <stdio.h>class Object{public: ~Object() { prinf("销毁"); } int value;};int main{ {...原创 2019-04-22 09:53:52 · 4855 阅读 · 0 评论 -
C/C++构造函数
1、在类中定义构造函数#include <stdio.h>#include <string.h>class Student{private: int id; char name[32];public: Student(int id, const char* name) { this->id = id; strcpy(this-&...原创 2019-04-22 09:54:10 · 5720 阅读 · 0 评论 -
C/C++动态创建对象(malloc-free和new-delete)
1、new申请变量赋值new申请内存空间默认构造函数第一种改法:传入构造函数的参数AfObject* obj = new AfObject(1,2);第二种改法:添加一个默认构造函数 AfObject():x(0), y(0) { }new创建对象后,可直接将参数传入()中如果像结构体一样给对象初试化,必须存在默认的构造参数...原创 2019-04-22 10:14:23 · 1728 阅读 · 0 评论 -
C/C++随机数、随机洗牌
1、获取不同的随机数①输出不同随机数srand(time(NULL));for(int i=0;i<10;i++){ printf("%d ",rand());}每次启动程序的时间不一样,保证使用不同的种子,从而使每次for循环打印的10个数都不相同修改成如下: int data[10] = { 12, 98, 9, 89, 8, 878, 87,...原创 2019-04-15 15:26:17 · 696 阅读 · 0 评论 -
C/C++访问修饰符 public private protected+关键字const virtual
protected访问修饰符修饰的变量:①protected成员变量不能被main中的对象访问,同private②protected的成员能被子类继承const指针int a=10;const int* p=&a;*p=11; //内存不可写int b=*p; //内存可读const的作用:封禁了星号操作的写内存功能,但是其它的算术操...原创 2019-04-23 09:34:51 · 190 阅读 · 0 评论 -
C/C++继承
成员函数的重写在子类中调用父类的成员函数方法:类名::成员函数名虚拟继承virtual当子类和父类同时存在一个同名函数时,则Base* p=new Child();p->Test(); 程序实际被执行的是父类的Base::Test()函数,在实际情况中为了能执行子类中的Test,需要在父类函数Test前加上关键字virtual,从而使父类中的函数变为虚函数...原创 2019-04-23 09:51:19 · 146 阅读 · 0 评论 -
C/C++引用
引用符号:&,出现在类型之后Struct Object{ int value;};int main{ Object a={1}; Object& r=a; return 0;}1、创建一个类型为Object的对象a,变量r是对象a的一个引用(总共只有一个对象,r只是对象a的一个别名),对r的访问就是对a的访问int a=12...原创 2019-04-24 10:57:06 · 3277 阅读 · 0 评论 -
C/C++标准模板库:vector、list、stack
vectorvector实现的是数组的功能1、向vector内部的数组中出入数据时,使用push_back和pop_back①定义了vector,则在子函数中采用push_back和pop_back实现字符串的存储②使用while(1)循环,里面一定要有结束while循环的语句。③find函数没有找到内容时,返回-1,当只剩最后一个名字,利用find函数不能找出‘,’,所...原创 2019-04-25 11:53:45 · 322 阅读 · 0 评论 -
C/C++ operator操作符
题目应该是描述错误,应该是将输入的int转化为string#include <stdio.h>#include <string>using std::string;class AfInteger{private: int value;public: AfInteger() { this->value = 0; } AfIn...原创 2019-04-25 15:49:24 · 3800 阅读 · 0 评论 -
C/C++重载
1、函数重载在C++中,当两个函数的名字相同时,称为函数名重载。只有当函数名相同,参数列表(参数个数,采纳数类型)也相同的时候才会被认定为重复,从而导致编译器报错double find_max(double a,double b);double find_max(double a,double b,double c);函数重载,被认为是两个不同的函数...原创 2019-04-25 17:07:01 · 294 阅读 · 0 评论 -
C/C++异常、报错
字符相关的报错输入字符不能是字符串strcpy未定义strcpy()定义于string.h头文件中,所以当使用strcpy()时,必须加上#include <string.h>才行。#include <string.h> //对应函数strcpy编译会报错:让使用strcpy_s,但是修改为strcpy_s后又报错:要求只传入一个参数...原创 2019-04-09 09:54:15 · 940 阅读 · 0 评论 -
C/C++时间
1、获取系统时间(加上头文件time.h)①获取秒数time_t时间是一个从1970年开始计算的数,用time_t类型定义获取的时间(不是用int,但是time_t类型实质是一个整数类型)time_t now=time(NULL)用于统计程序运行过程中消耗的秒数,如果程序执行时间为ms级,则可以通过for循环执行很多次来实现ms级的时间评估time_t start=time(...原创 2019-04-12 10:35:55 · 418 阅读 · 0 评论 -
C/C++输入和输出
printf()函数入栈printf函数参数的入栈顺序是从右到左(888先入栈,接着666入栈)。所以从栈里面读取一个数据时,只会读取最后入栈的数据,也即666输出结果为666变量输出格式(变量=%d)可直接在printf中传入具体值(两种方法)输入小数:%lf (lf 代表 long float-point),定义为double类型变量输出用%lf(%f什么时候用?...原创 2019-04-12 10:35:35 · 1186 阅读 · 1 评论 -
C/C++字符和字符串
1、字符和字符串的定义(字符用char,字符串用string)字符定义:在计算机里,所有数据必须以数字的形式表示,字符也不例外。根据 ASCII 码表的规定,每个字符一个数字表示,而这个数字在 0-127 之间。在 C/C++里char/short/int 都可以表示整数,由于字符的数值范围较小,我们选用 char 型变量来代表字符。如:char c = 'aa';char c= ...原创 2019-04-04 11:12:31 · 1765 阅读 · 0 评论 -
C/C++结构体
1、定义结构体结构体像子函数一样,在int mian()外定义①定义结构struct Mp3Song(结构体名称){ char singer[32]; // 歌手名字 char title[128]; // 歌名 int hits; // 下载量 }这里的字符串数组用的是char ,但是输出用的%s,这一点怎么理解?定义结构体不能进行初始化赋值操作,下面这种情况是错...原创 2019-04-04 15:12:59 · 487 阅读 · 0 评论 -
C/C++工程创建
项目的创建:在 main.cpp 文件中写的文本,称为代码(Code)。代码在经过 VC 平台的编译处理之后,生成的 exe 文件,称为程序(Program)。程序是交给用户来用的,而代码则是程序员自己保留的。1、快捷键:Ctrl+Shift+N 新建工程2、选择控制台输出注意:vs2017版本没有win32选项,直接选择windows桌面导向3、快捷键...原创 2019-04-01 09:07:59 · 5855 阅读 · 0 评论 -
C/C++基础知识
C是面向过程的程序设计语言C++是面向对象的c++是先创建一个对象,然后再对对象进行操作C++的头文件是可以省略.h后缀的stdio.hstdio:standard input/output,标准输入输出函数如:使用printf和scanf就需要定义此头文件stdlib .h头文件即standard library标准库头文件 。stdlib 头文件里包含了...原创 2019-04-01 11:04:44 · 537 阅读 · 0 评论 -
C/C++表达式和优先级
1、逗号表达式(依次计算,结果为最后一个式子值)是以逗开隔开的一系列表达式,其形式为:expr1, expr2, expr3, ..., exprN其运算规则是,从左到右依次计算每个子式的值,并把最后一个子式的值作为整个表达式的值。注:前几个表达式的值可能会影响到最后表达式中的变量,所以一定是依次计算2、*=b *= a + 3;相当于b = b * (a + 3 )...原创 2019-04-01 16:24:48 · 638 阅读 · 0 评论 -
C++编程规范、易犯错点
标点符号int main和if后直接接括号(),之后没有标点for/if/int main/头文件不加;号外,其余所有都必须加;号注意需要加上;号的位置:break(如break后/结构体后必须加上;号)结构体的最后一个大括号后面需要加上;号if...else if...else..的格式注意:如果if后面执行的有多条语句,必须要加上大括号。通过单步可以看出,...原创 2019-04-01 16:34:24 · 138 阅读 · 0 评论 -
C/C++变量大小、动态分配内存、内存填充
变量大小数字最终是以二进制存储和表示,八个位(Bit)构成一个字节(Byte)1 KB = 1024B字节 ,(Kilo Bytes)1 MB = 1024KB,(Mega Bytes),经常看到的文件大小变量的大小:变量在内存里所占的字节数。用操作符sizeof 来测量一个变量或类型的大小。1、变量在内存中所占的字节称为变量的大小char型变量表示的范围很小,对应1个字节...原创 2019-04-07 18:14:13 · 3009 阅读 · 0 评论 -
C++编程题总结
1、重复打印+换行 for (int n = 5;n > 0;n--) { for (int j = 1;j <= n;j++) { printf("*"); //if (j == n) //printf("\n");//循环结束,自动打印换行,直接放在for循环外面,无需if判断 } printf("\n"); }printf和f...原创 2019-04-02 08:46:52 · 592 阅读 · 0 评论 -
C++数组(二维数组)
二维数组的定义a[][3]这里的3表示总共有3列,但是取值二维数组的最后一个元素是a[2][2]二维数组的取值①数组定义时可以不初始化。char arr[5]; 5个字符对应的ASCII码组成的数组// 定义了一个长度为 5 的 char 型数组,不指定初始值在计算机中所有数据必须以数字形式表示,每个字符用一个数字表示(数字即字符对应的ASCII码),数字...原创 2019-04-02 09:30:42 · 6923 阅读 · 0 评论 -
C/C++对齐、取数据固定部分、保留小数点后两位
% 2d(空格填充,右对齐)是将数字按宽度为2,采用右对齐方式输出,如果数据位数不到2位,则左边补空格%02d(0填充,右对齐)默认情况下,数据数据宽度不够2位是用空格填补的,但是因为2d前面有0,表示,数据宽度不足时用0填补。%.2lf(l容易遗漏)%f和%lf的区别:float用%f表示(float point),当精度要求不高于7位有效数字,可以用floa...原创 2019-04-02 16:10:31 · 2316 阅读 · 1 评论 -
C/C++指针
1、*的理解:*是一种操作,对指针类型的变量进行操作,对指定的内存地址进行读写变量的地址理论上是整数,可以用int类型表示,为了突出强调它是一个内存地址,用了新的整数类型表示,即指针类型char*:表示一个char型变量的地址int*:表示一个int型变量的地址XXX*表示XXX型变量的地址,XXX可以除了上面两种数据类型外可以是其它任何数据类型。XXX*作为一个整体使用。①因...原创 2019-04-02 16:43:07 · 1589 阅读 · 0 评论 -
C/C++链表
1、实现链表需要用结构体定义一个类型struct Student{ int id; char name[128]; Student* next;}结构体中的成员类型可以是自己,next的类型是Student,而不是Student。所有的指针类型本质上是一个整数,4字节,所以包含一个整数是没有问题的Student ss[4]{ {201901,"...原创 2019-04-08 16:01:24 · 182 阅读 · 0 评论 -
C/C++自定义函数、返回值
1、调用函数一定是在int main()外的2、调用的子函数没有返回值,用void,否则会报错子函数没有返回值。①有返回值根据返回值类型来定义为int,并且在子函数结尾一定要写上return result(需要返回的值)int main中需要定义一个新的变量去接收子函数返回的值变量地址作为返回值全局变量的生命期是永恒的,如果返回一个局部变量的地址会出现问题(变量在子函...原创 2019-04-04 08:45:11 · 9491 阅读 · 0 评论