- 博客(43)
- 资源 (1)
- 收藏
- 关注
原创 c++面试题总结
sizeof(A)大小为1,因为类是是用来定义对像的,每个对象的存储空间中存储相应的数据成员值,通常第一个数据成员的地址为对象地址.如果长度为0,无法实例化空类的对象,为此编译器添加一个字节的数据成员.静态成员属于整个类,不属于某个对象,如果在类的内部定义,在建立多个对象时会导致多次定义,静态数据成员存储在全局数据区,为本类的所有对象共享,不属于特定的类对象。静态数据成员属于类不属于对象,无论定义多少个对象,静态数据成员只存在一份。静态数据成员必须在类外进行初始化。
2022-09-02 11:24:02
510
原创 c++面试题
extern "C"是链接指示符,主要作用实现c++代码调用其他c语言代码,指示编译器将这部分代码按C语言去编译由于c++支持函数重载,在编译函数的过程中会将函数后的参数类型也加到编译后代码中,不仅仅是函数名,而C语言不支持函数重载,因此在编译C语言时不会带上函数的参数类型,只包含函数名。
2022-08-24 17:34:11
404
原创 c++语言--面试题
c是c++的一个子集,c++在c的基础上增加了 类 和 模板 类型一方面:c++加强了c的过程化功能,引入了 重载和异常处理等另一方面:扩展了面向对象设计的内容 如:类,友元,继承,虚函数,模板c是一中结构化编程语言 重点在于算法和数据结构c++是面向对象的编程语言 重点在于如何设计对象模型。
2022-08-23 17:56:46
490
原创 线程--同步--互斥--死锁
死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去,永远在互相等待。
2022-08-20 17:48:34
325
原创 c++类型转换static_cast dynamic_cast const_cast reinterpret_cast
type-id> (expression) 将expression转换为type-id类型 但没有在运行时检查来保证转换的安全性。
2022-08-19 12:00:41
371
原创 Linux进程间通信---信号
信号集是一个能表示多个信号的数据类型,sigset_t set,set即一个信号集。既然是一个集合,就需要对集合进行添加/删除等操作。//将set集合置空//将所有信号加入set集合//将signo信号加入到set集合//从set集合中移除signo信号//判断信号是否存在int main(){int ret=0;//清空信号集//判断sigint是否在信号集中{}{}{printf("已删除sigint\n");}return 0;}...
2022-08-16 11:51:46
932
原创 进程间通信---共享存储映射
能将一个磁盘文件映射到存储空间中的一个缓冲区上,从缓冲区读数据就相当于读文件中的相应字节,将数据写入缓冲区,就相当于对文件写入相应字节这样,就可在不适用read和write函数的情况下,使用地址(指针)完成I/O操作。...
2022-08-15 18:04:02
267
原创 百日刷题---错题02day(选择题中的面试题)
1.对于循环队列 ()A.无法判断队列是否为空B.无法判断队列是否为满C.队列不可能满D.以上说法都不对答案:D少用一个元素空间,对列空间大小有m个元素,有m-1个元素即为满. 头指针尾指针指向同一个地方即为空. 尾指针加1等于头指针即为满4.层次遍历初始堆只可以得到一个有序的序列。( )...
2022-08-11 21:57:46
661
原创 百日刷题挑战--错题01day
1.在 32 位编译器上,设有定义1char则以下语句1的输出结果是(6,6)解析:str1是指针 大小为4字节str2是字符数组 大小为6个字节(包含/0);2.在C++中,定义结构体类型struct时,不能定义成员函数,只有class可以定义成员函数。解析:错误 c语言中struct不可以定义成员函数,c++可以,包括继承(面试题 : struct和class的区别)3.下列程序输出什么?答案: 1 4 6 3解析:在继承中构造和析构顺序。...
2022-08-10 12:18:18
318
原创 c++类和对象(上)
/类中的变量称为类的属性或成员变量;类中的函数称为类的方法或者成员函数1.声明和定义都放在类体中,(成员函数如果在类内定义,编译器会当作内联处理)2.声明放在头文件,定义放在.cpp文件中(成员函数前需要加作用域)...
2022-07-30 10:08:43
131
原创 c++基础
函数定义或声明为函数参数指定一个缺省值,在调用该函数时,如果没有指定实参则采用该形参的缺省值,否则指定的实参当函数调用时没有指定实参默认使用的一个值。
2022-07-24 09:13:46
264
原创 复合类型--引用,指针
基于其他类型定义的类型(int*pint&d)一条声明语句由一个和紧随其后的一个列表组成.每个声明符命名了一个变量并指定。
2022-07-22 17:18:10
146
原创 UDP编程
UDP是User Datagram Protocol --用户数据报协议,是一个简单的面向数据报的运输层协议,是一种无连接的协议。UDP不提供可靠性的传输,它只是把应用程序传给IP层的数据报发送出去,但不保证它们能到达目的地。由于UDP在传输数据报前不用在客户和服务器之间建立一个联系,且没有超时重发等机制,故而传输速度很快。d在网络质量不好的情况下,UDP协议数据包丢失会比较严重。但是由于UDP的特性:它不属于连接型协议,因而具有资源消耗小,处理速度快的优点,所以通常音频,视频和普通数据在传送时使用 UDP
2022-07-04 20:59:47
287
原创 第04天-文件IO
第04天-文件IO系统调用是受控的内核入口,借助于这一机制,进程可以请求内核以自己的名义去执行某些动作**实现:**系统调用是操作系统内核的一部分的,必须以某种方式提供给进程让他们去调用。CPU可以在不同的特权级别下运行,而相应的操作系统也有的运行级别(用户态和内核态)运行在内核态的进程可以毫无限制的访问各种资源,操作系统通过软件中断从用户态切换到内核态库函数:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-18xZd0AJ-1656067116776)(D:\图片\imag
2022-06-24 18:41:10
286
原创 Linux -Makefile详解
01.MakeFile简介:03.MakeFile语法规则04.make命令格式:05.MakeFile工作原理06.MakeFile示例07.MakeFile中的变量08.MakeFile中的函数09.MakeFile中的伪目标
2022-06-23 20:59:02
244
原创 C语言进阶---文件操作详解
1.什么是文件?磁盘里的东西就是文件1.1功能角度分类:程序文件:源程序文件(.c),目标文件(.obj),可执行程序(.exe);数据文件:程序运行时读写的数据。1.2文件名:唯一的文件标识,三部分:文件路径+文件主干+文件后缀2.文件的打开与关闭2.1文件指针每个被使用的文件都在内存中开辟一块相应的文件信息区,用来存放文件的相关信息(文件的状态,名字,当前位置等)。被保存在一个结构体变量中。(该结构体类型是有系统声明的,取名FILE)每当打开一个文件的时候,系
2022-04-09 23:36:58
345
1
原创 动态内存管理详解
目录为什么存在动态内存分配?动态内存函数1.malloc 如果参数 size 为0,malloc的行为是标准是未定义的,取决于编译器。2.free3.calloc常见的动态内存错误:面试题:为什么存在动态内存分配?int main(){ int ret = 0;//在栈区开辟四个字节 char arr[10] = { 0 };//在栈区开辟10个字节的连续空间 return 0;}特点:空间大小是确定的(固定...
2022-04-03 14:16:38
1216
原创 自定义类型:结构体,枚举,联合体详解
结构体1.结构体声明结构的基础知识:结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。结构的声明:描述一个学生类型:int mian(){ struct student { //结构体类型名 char name[100]; //名字 int ID[10]; //学号 char sex[5]; //性别 int age; //年龄 }stu;
2022-03-26 22:06:09
823
原创 字符串(string)And内存函数(memory)介绍
1.字符串(string) strlen 意义:获得字符串长度,以'\0'为结束标志。(长度不包含'\0');注意:函数返回值是size_t(unsinged int)模拟实现strlen:size_t my_strlen(char *str){ size_t count = 0; while (*str) { count++; str++; } return count;}int main(){ char arr2[] = "abcdef"..
2022-03-25 21:23:52
632
原创 C语言刷题----day1
不努力你连淘汰的机会都没有!1、执行下面程序,正确的输出是()int x=5,y=7;void swap(){int z;z=x;x=y;y=z;} int main(){int x=3,y=8;swap();printf("%d,%d\n",x, y);return 0;}A: 5,7 B: 7,5 C: 3,8 D: 8,3解析:优先局部变量,所以3,8选c;
2022-03-21 17:54:42
1427
原创 指针---面试题
#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include<string.h>int main(){ /*一维数组 除了sizeof(a) &a表示整个数组 其余都表示数组首元素*/ int a[] = { 1,2,3,4 }; printf("%d\n", sizeof(a));//整个数组的大小 16 printf("%d\n", sizeof(a +.
2022-03-20 21:36:10
331
原创 Leetcode刷题 1.移除元素 2.删除有序数组中的重复项
目录1.移除元素2.删除有序数组中的重复项3.数组形式的整数加法1.移除元素https://leetcode-cn.com/problems/remove-element/https://leetcode-cn.com/problems/remove-element/int removeElement(int* nums, int numsSize, int val){int dst=0;int src=0;//设置两个数标,都指向数组首元素,while...
2022-03-16 15:56:03
433
原创 [LeetCode]-刷题--1.消失的数字--2.
1.消失的数字数组nums包含从0到n的所有整数,但其中缺了一个。请编写代码找出那个缺失的整数。你有办法在O(n)时间内完成吗?示例 1: 输入:[3,0,1] 输出:2 示例 2: 输入:[9,6,4,2,3,5,7,0,1] 输出:8链接:力扣题解:目录1.消失的数字链接:力扣题解:2.只出现一次的数链接:力扣题解:比如 输入:[9,6,4,2,3,5,7,0,1] 0到9 缺个8,所以一共有9个数,将这9个数全部异或然后再...
2022-03-14 20:57:05
8245
原创 解惑----qsort快排函数以及原理
先看下冒泡排序//冒泡排序void bubble_sort(int arr[], int num){ for (int i = 0; i < num; i++) { for (int j = 0; j < num - 1 - i; j++) { if (arr[j] > arr[j + 1]) { int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } }
2022-03-13 23:09:41
1161
原创 C语言进阶--函数指针
什么是函数指针?函数指针:指向函数的指针//可以通过指针直接调用函数函数指针格式void (*p)() // 注意(函数类型和参数)与函数指针类型一致,void test(){ printf("hello word\n");}int main(){ test(); void (*p)() = &test;// (*p)();//(*p)==test 等效于调用test(); return 0;}示例1 :示例2:...
2022-03-09 16:11:42
1175
原创 C语言进阶---数据存储——浮点型在内存中的存储
1.浮点数存储 一个例子:疑问? 为什么*pFloat与n不相同?2.浮点型在内存中的存储的规则:国际标准IEEE(电气和电子工程协会)745规定:对于32位的浮点数,最高的1位是符号位s,接着的8位是指数E,剩下的23位为有效数字M二进制浮点数可以表示下面的形式:(-1)^S * M * 2^E (-1)^s表示符号位,当s=0,V为正数;当s=1,V为负数。 M表示有效数字,大于等于1,小于2。 2^E表示指数位补充:IEEE 745对M的...
2022-03-05 21:24:43
366
3
原创 指针进阶——数组指针
目录1.什么是数组指针?2.数组指针格式?3.数组指针的使用!补充:&数组名与数组名1.什么是数组指针?字符指针:char * c;指向字符数据的指针。整形指针:int * a;指向整形数据的指针。浮点型指针:float * b;指向浮点型数据的指针。所以:数组指针:指向数组的指针2.数组指针格式?int *p1[10]; //指针数组 int (*p2)[10]; //数组指针数组指针:p先和*结合,说明p是一个指针变量,然后指着指..
2022-03-04 13:49:44
362
3
原创 C语言--三步棋
目录一:框架1.菜单2.初始化棋盘3.打印棋盘4.玩家下棋6.判断输赢一:框架菜单(选择开始,退出) 初始化棋盘(将一个二为数组初始化为空格) 打印棋盘 玩家下棋 电脑下棋(随机下棋) 判断输赢1.菜单void meun(){ printf("********************\n"); printf("*******1.play*******\n"); printf("*******0.exit*******\n"); pri..
2022-01-23 00:01:53
302
原创 C语言----空心六边形
输入格式只有一个正整数n(0 < n < 20),代表正六边形的边长。输出格式是一个边长为n的正多边形。Sample Input 15Sample Output 1 ***** * * * * * ** * * * * * * * *****#define _CRT_SECURE_NO_WARNINGS 1#include&l
2022-01-21 08:00:00
2122
1
原创 数值交换详解-三种情况;
第一种:传值调用补充:1.形参:形式参数是指函数名后括号中的变量,因为形式参数只有在函数被调用的过程中才实例化(分配内 存单 元),所以叫形式参数。形式参数当函数调用完成之后就自动销毁了。因此形式参数只在函数中有效。2.实参:真实传给函数的参数,叫实参。实参可以是:常量、变量、表达式、函数等。 无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形 参。当实参传给形参的时候,形参是实参的一份临时拷贝(产生新的地址,存放实参传过来的值),对形参的修改不会影
2022-01-20 21:32:59
414
原创 解惑:rand与srand函数;
1,函数int rand(void);不懂就看白话总之就是srand()会产生一个不同的数字序列,返回给rand; srand()括号里面的数值不同就会产生一个不同的数字序列 重点:数值相同每次生成的序列也相同 (所以如何产生不同序列呢?答案:让数值一直变化不就完了吗?,请看后面第三点)不懂就看代码; 使用函数要包含头文件<stdlib.h>2. rand范围范围不多说了挺简单的;v1 = rand() ...
2022-01-17 18:52:35
530
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅