自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 指针操作(指针类型和指针类型转换为其他类型时侧操作)

当为指针类型时,将指针直接+1即可指向指针的下一个地址,例如p,p+1指向p的下一个地址。当指针类型转换为int类型时,需要+4(32位系统指针占用4个字节)可以指向指针的下一个地址,例如p,(int)p + 4指向p的下一个地址。```cpp#include<iostream>using namespace std;class Father {public:public: int x = 200; int y = 300;};int main(void) { Fa

2020-10-11 14:30:28 214

原创 实现多态:虚函数

多态本质形式上,使用统一的父类指针做一般性处理,但实际执行时,这个指针可能指向子类对象,即原本调用父类的方法,但是实际上会调用子类的同名方法。为什么要使用多态程序执行时,父类指针指向父类对象,或子类对象时,在形式上是无法分辨的。只有通过多态机制才能执行真正对应的方法。实现多态虚函数的定义:在父类函数的返回类型前面加virtual注意:只在成员函数的生命中添加virtual,在成员函数中不要加virtual。虚函数的继承:如果某个成员函数被声明为虚函数,那么它的子类【派生类】,以及子类的子类中

2020-10-10 23:29:14 181

原创 C++中eof(),bad(),fail(),good(),clear()

1、eof()输入流状态检测如果读文件到达文件末尾,返回true。问题:关于输入流状态函数cin.eof()的问题int main(){char gc;while(!cin.eof()) //直至按ctrl+z键退出!{cin>>gc;cout<<gc<<endl;}cout<<cin.eof()<<endl<<cin.fail()<<endl<<cin.bad()<<endl;

2020-08-04 14:40:59 1902

原创 二维数组的指针表示

1.类型说明int *b; //定义一个int型指针变量int *p[3]; //定义一个int型指针数组的变量int (*)[3] 或 int(*d)[3]; //定义一个数组指针变量2.初始化赋值假设二维数组为:int a[3][3] ={{0,1,2},{3,4,5},{6,7,8}};(1)用指针b表示二维数组时为:int *b=a[0]; //将指针b指向a的首...

2020-02-29 13:34:36 2797

转载 C++中list的front()和begin()

list.begin()是 iterator(相当于指针功能)迭代器而list.front() 是指第一个元素变量

2020-02-27 23:46:39 4938

原创 _memccpy函数(memccpy)

_memccpyvoid *_memccpy(void *dest,const void *src,int c,size_t count);ParametersdestPointer to the destination.srcPointer to the source.cLast character to copy.countNumber of characters...

2020-02-05 01:11:05 856

转载 C语言数组指针和指针数组的区别

对指针数组和数组指针的概念,相信很多C程序员都会混淆。下面通过两个简单的语句来分析一下二者之间的区别,示例代码如下所示:int *p1[5];int (*p2)[5];首先,对于语句“intp1[5]”,因为“[]”的优先级要比“”要高,所以 p1 先与“[]”结合,构成一个数组的定义,数组名为 p1,而“int*”修饰的是数组的内容,即数组的每个元素。也就是说,该数组包含 5 个指向 i...

2019-12-02 18:45:32 397

原创 队列中元素的删除

队列中可以用一级指针或者二级指针来进行元素的删除操作,若采用一级指针时,需找到删除元素的前一个元素,然后将删除元素的前一个元素的指针指向删除元素的后一个元素,然后再将要删除的元素delete;若采用二级指针,先移动指针的地址到要删除的元素位置 ppointer = &(pointer) ,注意不要直接更改二级指针的值*ppointer = pointer, 这样做会将前边的元素也一起删除。...

2019-11-06 16:36:32 7825

转载 传指针和传指针引用的区别

指针传递参数本质上是值传递的方式,它所传递的是一个地址值。值传递过程中,被调函数的形式参数作为被调函数的局部变量处理,即在栈中开辟了内存空间以存放由主调函数放进来的实参的值,从而成为了实参的一个副本。值传递的特点是被调函数对形式参数的任何操作都是作为局部变量进行,不会影响主调函数的实参变量的值。(这里是在说实参指针本身的地址值不会变)而在引用传递过程中,被调函数的形式参数虽然也作为局部变量在栈中...

2019-10-16 14:33:48 121

原创 VS错误C3646的可能错误

1.循环引用在分离式编译中,我们往往习惯将不同的类或者函数分别写在不同的函数中,提高工作效率。但如果在使用时出现两个类分别在两个不同的文件中编写,并且相互引用,则会出现循环引用,引发此错误。举例:tire.h/tire.cpp和auto.h/auto.cpp 在tire.h中include auto.h,并定义了一个auto的object,然后在auto.h中又include了tire.h解...

2019-10-14 23:46:54 878

原创 malloc()和calloc()区别分析

函数malloc()和calloc()都可以用来动态分配内存空间,但两者稍有区别。malloc() 函数有一个参数,是需要分配空间的大小(单位是字节)calloc()函数有两个参数,第一个参数是元素的数目,第二个是每个元素的大小如果调用成功,函数malloc()和函数calloc()都将返回所分配的内存空间的首地址。函数malloc()和函数calloc()的主要区别是前者不能初始化所分配...

2019-10-08 00:28:45 147

原创 C++生成随机数

使用rand()函数#include <stdlib.h>如果只要产生随机数而不需要设定范围的话,只用rand()就可以了,rand()会随机产生一数值,范围在0到RAND_MAX间。 RAND_MAX定义在stdlib.h,其值为2147483647.x = rand()%11; //产生1~10之间的随机数y= rand()%51 ...

2019-09-19 00:58:26 1331

转载 c_str()函数

语法: const char *c_str();函数返回的是一个临时指针,不能对其进行操作c_str()函数返回一个指向正规C字符串的指针, 内容与本string串相同.,这是为了与c语言兼容,在c语言中没有string类型,故必须通过string类对象的成员函数c_str()把string 对象转换成c中的字符串样式。char c[20];string s=“1234”;strcpy(...

2019-07-24 22:21:10 97

转载 c\c++字符串连接

一: C风格字符串连接#include using namespace std;int main(){const char *str = "hello ";const char *str2 = “world”;const size_t len = strlen(str)+strlen(str2);char *n_str = new char[len+1];strcpy(n_str...

2019-07-15 00:05:07 3092

转载 C语言排序方法

1、冒泡排序(Bubble Sort)冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。1.1 算法描述比较相邻的元素。如果第一个比第二个大,就交换它们两个;对每一对相邻元素作同样的工作,...

2019-07-08 00:21:26 289

原创 保证头文件只调用一次

1、#pragma onece //只能vs、vc平台使用2、#ifndef TOOLS_H#define TOOLS_H#endif_TOOLS_H_为名称,此方法可跨平台使用

2019-07-02 23:50:59 806

转载 C++输入方法:cin、cin.get()、gets()区别

程序的输入都有一个输入缓冲区。当一次键盘输入结束时会将输入的数据存入输入缓冲区,而cin函数直接从输入缓冲区中取数据。因为cin函数是直接从缓冲区取数据的,所以当缓冲区中有残留数据时,cin函数会直接取得这些残留数据而不会请求键盘输入。输入方法简介:1、cin>>根据cin>>a 中a的变量类型读取数据,遇到结束符(Space、Tab、Enter)就结束,且对于结束符...

2019-06-30 00:37:13 1174

原创 cin.clear()、cin.sync()、cinignore()函数的用法

一、cin.clear()、cin.sync()cin.clear()是用来更改cin的状态标示符的。cin.sync()是用来清除缓存区的数据流的。如果标示符没有改变那么即使清除了数据流也无法输入。所以两个要联合起来使用。例如:#includeusing namespace std;int main(){int a;cout<<“输入一个字母:”<<...

2019-06-26 19:10:14 1826 1

原创 Vs中判断cin、getline函返回值

#include <iostream>#include <string>#include <Windows.h>using namespace std;int main(void) { string word; int count = 0; int length = 0; cout << "请输入任意多个单词:"; while...

2019-06-24 20:53:44 526

原创 在vs编译器中使用scanf出现错误的解决办法

vs中不能直接使用scanf等C标准库函数,因为vs使用更安全的c11标准, 认为这类函数不安全。1、代码数量较少时,将scanf改为scanf_s,但要注意使用区别,在输入整型和浮点型时与scanf用法相同,在输入在字符和字符串数组时要添加第三个参数:int x;scanf_s("%d", &x); //不需要使用第3个参数,用法和scanf相同float f;scanf...

2019-06-24 20:42:38 4300

原创 C++精度问题设置

一种方法cout.precision(n); //n为有效数字个数,即输出精度cout.flags(cout.fixed) //定点,即小数点后有n个有效数字可以用cout<<fixed代替cout.unsetf(cout.fixed) //取消定点法,即变成输出n个有效数字...

2019-06-22 13:23:44 780

转载 Vc++控制台输出中文乱码

VC++解决方案一: 修改文件的编码修改源代码文件的”编码格式”, 使其和控制台的编码格式保持一致.控制台的编码格式默认是936代码文件的编码格式,可以通过vs很方便的修改:先用vs打开对应的文件, 然后如下操作:如果控制台的编码和程序的编码一致,还是有中文乱码,就需要修改控制台的属性,右击控制台标题栏,选择“属性”,勾选“使用旧版控制台”然后再重新运行。解决方案二: ...

2019-06-16 20:23:39 2620 1

原创 从文件中读取整数类型

从文件中读取整数类型#include <stdio.h>void isPeak (int data[64][64] , int , int);int main (void) {FILE* file;int i , j;int name[64][64];file = fopen("G:\\Ctmp\\files\\peakdata.txt" , " r ");if(!fi...

2019-06-14 22:12:43 3449

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除