- 博客(27)
- 问答 (1)
- 收藏
- 关注
原创 类和对象——默认成员函数--拷贝构造函数
只有单个形参,该形参是对本类型对象的引用(一般用const修饰),在用已存在的类类型对象创建新对象时由编译器自动调用。
2022-10-08 16:42:34
247
原创 类和对象——默认成员函数--析构函数
/而_t是Time类对象,所以在d销毁时,要将其内部包含的Time类的_t对象销毁,所以要调用Time类的析构函数。//但是:main函数中不能直接调用Time类的析构函数,实际要释放的是Date类对象,所以编译器会调用Date类的析构函数,而Date没有显式提供,则编译器会给Date类生成一个。
2022-10-08 13:30:28
183
原创 类和对象——默认成员函数--构造函数
内置类型就是语言提供的数据类型(int,char,…),自定义类型是我们自己(struct,class,union…)定义的类型。编译器生成的默认构造函数。
2022-10-08 12:53:17
300
原创 C++入门——引用(重点!!!)
当然,在有的教材当中,会在定义结构体的时候,就会定义结构体指针变量,如图上的PTNode,所以就会定义引用PTNode&phead;比如上面的sd,把d的值给sd,隐式转换为int,是有一个临时变量是int型的,把转换好的给临时变量,再去给sd,d本身没有变。在这里,rd引用的不是d,而是那个临时变量(具有常性,也就是只可读),现在要i引用为int,那就是可读可写,是不可以的。在这里,不一样的是没有了static的修饰,那么当Count函数栈帧销毁的时候,n也会销毁,此时n的别名,这块地址。
2022-09-25 20:05:45
433
原创 C++入门——命名空间
在c/c++中,会有变量、函数以及后面的类,这些名称都要存在于局部的,可能会有冲突。所以使用命名空间的意义就是,对标识符的名称进行本地化,以避免命名冲突或者名字的污染。namespace关键字 就是针对这种问题的。像这里,在stdlib头文件里已经有了rand这个函数,但是又定义了一个变量,名字与他一样,当程序打印rand时候,不知道是哪个,产生了歧义。所以为了避免这样,就会有命名空间。定义命名空间需要用到namespace关键字,后面接命名空间的名字,然后{}写体内,里面的就是。
2022-09-22 11:37:22
338
原创 数据结构--树的基本概念引入(二叉树)
结构像一颗倒挂的树。双亲节点或父节点:若一个节点含有子节点,则这个节点称为其子节点的父节点;节点的层次:从根开始定义起,根为第1层,根的子节点为第2层,以此类推;孩子节点或子节点:一个节点含有的子树的根节点称为该节点的子节点;子孙:以某节点为根的子树中任一节点都称为该节点的子孙。节点的度:一个节点含有的子树的个数称为该节点的度;兄弟节点:具有相同父节点的节点互称为兄弟节点;节点的祖先:从根到该节点所经分支上的所有节点;叶节点或终端节点:度为0的节点称为叶节点;非终端节点或分支节点:度不为0的节点;
2022-09-12 14:00:03
230
原创 数据的存储
但是,我们知道,科学计数法中的E是可以出现负数的,所以IEEE754规定,存入内存时E的真实值必须再加上一个中间数,对于8位的E,这个中间数是127;这时,浮点数的指数E等于1-127(或者1-1023)即为真实值,有效数字M不再加上第一位的1,而是还原为0.xxxxxx的小数。这时,浮点数就采用下面的规则表示,即指数E的计算值减去127(或1023),得到真实值,再将有效数字M前加上第一位的1。比如,2^10的E是10,所以保存成32位浮点数时,必须保存成10+127=137,即。...
2022-07-26 18:52:41
65
原创 预处理(详解)
FILE—//进行编译的源文件—LINE—//文件当前的行号—DATE—//文件被编译的日期—TIME—//文件被编译的时间—STDC—//如果编译器遵循ANSIC,其值为1,否则未定义%sline//为register这个关键字,创建一个简短的名字;)//用更形象的符号来替换一种实现case//在写case语句的时候自动把break写上。%s\tline%d\t\date%s\ttimeprintf(...
2022-07-21 18:35:03
498
原创 程序的环境
可以发现.i文件里面写了一些关于头文件的阐释以及拉到最后看到代码里面define的一些替换,使代码简化。即,最后将汇编产生的符号表(test.oadd.o)还有链接库合并。预处理完成之后就停下来,预处理之后产生的结果都放在test.i文件中。预处理选项gcc-Etest.c-otest.i。**3.汇编**把汇编代码转化成了二进制或者机器指令,生成。**1.预处理**完成了头文件的包含#include。**2.编译**把c语言代码转化成汇编代码。...
2022-07-21 15:42:34
251
原创 文件操作(详细总结)
在磁盘上的文件就是文件程序文件和数据文件**程序文件**源文件.c目标文件.obj可执行文件.exe**数据文件**程序运行需要从中读取数据的文件,或者输出内容的文件(文件内容不一定是程序,而是程序运行时读写的数据)。**文件名**路径+文件名主干+文件名后缀C\node(路径)\text(文件名).exe(文件名后缀)一个文件有唯一的文件标识,以便用户识别和引用。...
2022-07-19 11:42:21
1204
1
原创 柔性数组(详细)
在C99中,结构体中的最后一个元素允许是位置大小的数组,这就叫柔性数组。structs{intn;//或者写成intarr[0];};有的编译器都支持这两种写法,有的只支持其中一种。
2022-07-16 17:13:23
299
原创 个人自我介绍与计划
各位csdn的志同道合的朋友,你们好呀!首先我自我而介绍一下问我自己,本人即将升入大二,在去年这个时候高考结束,因为就超了一本几分,在了解了相关专业的情况下,选择了一个二本学校一本专业,计算机科学与技术。我是一个“安静”的女生哈哈哈,不是,是搞笑女,所以刚开始接触敲代码的时候,并不是觉得很有趣,总有那么一点的枯燥。但是经过一年的学习C语言,发现其实在自己熟练算法,并且很快敲击出来并运行成功的时候,何尝不是一种快乐呢?哈哈哈哈。......
2022-07-15 23:47:47
184
原创 数据结构--顺序表
顺序表是用一段物理地址的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。顺序表可以分为:1.静态顺序表:使用定长数组存储2.动态顺序表:使用动态开辟的数组存储代码实现通讯录的底层其实就是顺序表...
2022-07-10 09:24:14
50
原创 内存函数(memcpy,memmove,memcmp,memset)
因为是拷贝的内存的数据,所以什么类型都可以,用 void.*说明:memcpy应该拷贝不重叠的内存比如:但是,memmove可以处理内存重叠情况模拟实现memmove说明:但是可以看到,在VS-2013中,用memcp可以实现重叠拷贝原因:规定memcpy 只要实现了不重叠拷贝就可以了而VS-2013中实现既可以实现重叠也可以实现不重叠把ptr所指向的那块空间前的num字节设置成指定值value.以字节为单位设置内存...
2022-07-10 09:11:01
60
原创 字符分类和转换函数
1.iscntrl判断是否是任何控制字符2.isspace判断是否是空白字符3.isdigit 判断是否是十进制数字0-94.isxdigit判断是否是十六进制数字5.islower判断是否是小写字母6.isupper判断是否是大写字母7.isalpha 判断是否是字母8.isalnum判断是否是字母或者是数字9.ispunct判断是否是标点符号10.isgraph判断是否是任何图形字符11.isprint 判断是否是任何打印字符如果参数符合条件就返回真(非零)例如:字符转换函数1.
2022-07-09 15:22:55
85
原创 实现通讯录
在写程序之前,去想想要实现什么功能。1.存放信息的人数以及内容名字,年龄,性别,电话,地址2.增加人的信息3.删除人的信息4.修改人的信息5.查找指定人的信息6.排序通讯的信息这里,可以用contact.h去声明函数,以及类型的定义。contact.c去定义函数test.c去测试实现通讯录说明:1.一些变量最好用宏定义,修改变化方便。2.一开始尝试用静态,但是一下开辟过大,可能用不了浪费;一下开辟过小,也麻烦再去修改MAX的值。所以去选择动态开辟空间,节约。这里就需要即使记录数量的
2022-07-08 09:39:18
263
原创 编译链接与变量本质
在VS-2013中,编译链接的原理是将代码生成二进制可执行程序,然后运行。源文件.c通过编译器生成目标文件.obj再通过链接器结合链接库去生成可执行程序.exe从硬件的角度:这体现的是:冯诺依曼体系,详细可见百科: link.一个变量是需要程序运行起来,在程序内部去开辟空间的,而程序运行之前,就已经加载到内存了。这就说明了:所有变量,本质都是要在内存中某个位置开辟空间的。有数据需要暂时被保存起来,等候处理。数据在硬盘中,但能处理数据的是CPU,但是CPU处理数据是一个个的,那么在内存中就会有空间多
2022-07-08 08:50:37
71
原创 变量与函数的声明、定义与跨文件访问
组织项目结构的时候,项目越大越复杂的时候,不能单纯的去使用源文件,这样维护的成本会越高,所以就会有头文件的产生。基本上它是要被多个源文件包含的,所以会出现被重复包含的问题,所以,要在头文件顶部写上在头文件当中可以定义:1.C 头文件。例如: 2.所有的变量声明。例如3.所有函数的声明。例如:4.#define 类型 typedef,struct等。未声明的函数被main函数调用时,最后一步的链接,找不到这个函数的时候,编译器会报错。但是,如果编译的时,不存在的话,会以告警的形式来提醒,当去链
2022-07-07 21:29:08
747
1
空空如也
有关C语言的斐波那契数列
2021-11-11
TA创建的收藏夹 TA关注的收藏夹
TA关注的人