![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++语言基础
hyy_0224
这个作者很懒,什么都没留下…
展开
-
2021-12-20 C++函数中的省略号
最近读程序遇到函数中有省略号的情况,比如:extern int showmsg(char *format, ...){...}C++允许定义形参个数和类型不确定的函数。例如,C语言中的标准函数printf便使用这种机制。在声明不确定形参的函数时,形参部分可以使用省略号“…”代替。“…”告诉编译器,在函数调用时不检查形参类型是否与实参类型相同,也不检查参数个数。在上面的代码中,编译器只检查第一个参数是否为整型,而不对其他参数进行检查。...原创 2021-12-20 14:12:25 · 886 阅读 · 0 评论 -
2021-12-19 C语言函数集
#include<string.h>strcmp(s1,s2);//s1==s2返回0,<返回负数,>返回正数。原创 2021-12-17 13:36:05 · 760 阅读 · 0 评论 -
12-16 main函数的参数
main函数作为C/C++语言程序的入口,可以在()内带参数,也可以不带。如果需要main函数中输入参数,格式应为: int main(int argc, char* argv[]) 或者 int main(int argc, char** argv)其中第一个参数为int型,第二个参数为char **型。argc即argument count,即参数的个数。argv表示argument vector,即参数数组。表示传入main函数的指针数组,为char**类型。第一个数组元素argv[0]是程原创 2021-12-17 13:30:55 · 121 阅读 · 0 评论 -
2021-11-4 堆和栈的区别
1、首先回顾C++的内存从高地址到低地址分别是栈区、堆区、全局区、常量区、代码区2、堆栈的区别(1)申请方式不同栈空间由系统自动分配,只要剩余空间大于申请空间,系统就会为程序分配内存。否则提示栈溢出。堆空间由程序员主动申请。操作系统有一个记录空间地址的链表。当系统收到程序申请时,首先遍历链表,寻找第一个空间大于所申请内存的堆结点,然后将该节点从空闲结点链表中删除,并将堆内存分配给程序。(2)申请大小限制不同栈空间由高地址向低地址扩展,其内存连续。堆空间是不连续的,堆的大小受限于计算机系统中有原创 2021-11-04 04:24:13 · 156 阅读 · 0 评论 -
2021-11-03 C++智能指针
1、为什么要引入智能指针?C++的智能指针是为了处理直接申请动态内存导致的内存问题的产物。所以引入智能指针,其保证在作用域结束时调用析构函数销毁对象,释放内存。关于析构函数的作用,也是为了删除动态申请的内存。这个时候只要把delete放在析构函数里,就会自动被调用。使用智能指针,可以避免同一块内存被释放两次等会使程序崩溃的情况发生。而为什么同一块内存被释放两次呢,这是因为C++中类的默认构造函数默认是浅拷贝,浅拷贝是指并不再为新类的变量开辟空间,尤其是指动态分配的内存,而是直接使用指针指向原来相同的那一原创 2021-11-03 14:59:36 · 159 阅读 · 0 评论 -
2021-11-03 new和malloc的区别
1、new是操作符,可以被重载,malloc()是库函数。C++不可以被重载的运算符,一共有五个,分别是(1).点运算符、(2)::命名空间运算符(3)?:条件运算符(4)*取值运算符(5)sizeof运算符2、new和malloc()都可以申请动态内存,但new申请的内存在自由存储区,而malloc()申请的内存在堆区3、new的返回值为严格按照申请声明的同类型的指针,而malloc返回void类型指针4、new的内存申请失败后抛出bad_alloc异常,malloc返回NULL可以使原创 2021-11-03 13:32:45 · 228 阅读 · 0 评论 -
2021-11-02
遇到的笔试题,表示这一些类实例化的命名很少遇到。但编译可以通过的。#include#includeusing namespace std;class A{};class B :public A {};int main() {A a1;A a2=A();A *a3 =new A();A const& a4 = a1;int b;int const c = b;return 0;}...原创 2021-11-02 22:04:40 · 62 阅读 · 0 评论