- 博客(16)
- 收藏
- 关注
原创 c++学习记录2
代码保存//1、构造函数的分类及调用//分类// 按照参数分类 无参构造(默认构造)和有参构造// 按照类型分类 普通构造函数和拷贝构造函数/*class person{public: //构造函数 person() { cout << "person默认构造函数的调用" << endl; } person(int a) { age = a; cout << "person有参构造函数的调用" << endl; }
2021-09-10 19:08:57
147
原创 c++学习记录1
c++学习记录,仅作代码保存#include <iostream>using namespace std;#include <string.h>/*int* func(){ //c使用malloc开辟内存,c++使用new int* p = new int(10);//创建一个变量,这个变量存放10 return p;}void test(){ //创建10个整型数据的数组,在堆区 int * arr=new int[10]; for (int i =
2021-09-10 17:08:59
158
原创 在结构体内实现可变数组
柔性数组的优点:1.内存碎片更少,内存利用率更高2.内存空间连续,访问速度更快3.使用方法简单,步骤少,不容易出现错误#include <stdio.h>#include <stdlib.h>//在结构体内实现可变数组//使用柔性数组的方法struct S{ int n; //int arr[]; int arr[0];//未知大小的,柔性数组成员,数组的大小是可调整的};int main1(){ //struct S s; //printf("%d
2021-09-04 12:45:30
972
原创 使用动态开辟内存空间的常见错误
1.对NULL的解引用操作int main(){ int* p = (int*)malloc(40); *p = 0;//err 万一malloc失败了,p就被赋值为NULL free(p); p = NULL; return 0;}2.对动态开辟内存的越界访问int main(){ int* p = (int*)malloc(5 * sizeof(int)); if (p == NULL) { return 0; } else { int i = 0; fo
2021-09-02 20:07:39
194
原创 动态内存分配相关函数malloc、free、calloc、realloc
1.malloc:为一系列元素分配一组内存块。当开辟成功时返回内存块的地址,开辟失败则返回空指针NULL#include <stdlib.h>#include <stdio.h>#include <errno.h>#include <string.h>int main(){ int n = 0; scanf("%d", &n); //malloc申请内存空间 int* p = (int*)malloc(n * sizeof(int
2021-09-02 19:22:32
127
原创 C语言实现简单通讯录程序
使用C语言实现简单通讯录程序文件contact.h#pragma once#define MAX 1000#define MAX_NAME 20#define MAX_SEX 5#define MAX_TELE 12#define MAX_ADDR 30#include <stdio.h>#include <string.h>#include <stdlib.h>enum Option{ EXIT, ADD, DEL, SEARCH
2021-09-02 15:45:12
1907
原创 用C语言实现简单三子棋
用C语言实现简单三子棋game.h文件#include <stdio.h>#include <stdlib.h>#include <time.h>#define ROW 3#define COL 3void InitBoard(char board[ROW][COL], int row, int col);void DisplayBoard(char board[ROW][COL], int row, int col);void PlayerMove
2021-08-30 23:25:38
142
原创 求出两个数不同的二进制位数
求出两个数不同的二进制位数#include <stdio.h>int get_diff_bit(int m, int n){ int temp = m ^ n;//使用异或,不同的位数变成1 int count = 0; //对temp的1进行计数 while (temp) { temp = temp & (temp - 1); count++; } return count;}int main(){ int m = 0; int n = 0; s
2021-08-30 23:15:30
178
原创 输入一个整数,将二进制的奇数和偶数分开打印
输入一个整数,将二进制的奇数和偶数分开打印#include <stdio.h>//打印奇数位void bit_printf_ji(int a){ int i = 0; //从30开始右移偶数位,当右移0位时是二进制数的第一位 for (i = 30; i >=0; i -= 2) { if (((a >> i) & 1) == 1) { printf("1 "); } else printf("0 "); }}//打印偶
2021-08-30 23:10:11
171
原创 计算自幂数
//计算自幂数如果在一个固定的进制中,一个n位自然数等于自身各个数位上数字的n次幂之和,则称此数为自幂数。例如:在十进制中,153是一个三位数,各个数位的3次幂之和为13+53+3^3=153,所以153是十进制中的自幂数。在n进制中,所有小于n的正整数都为自幂数,比如2进制中1是自幂数,3进制中1和2都是自幂数,4进制中1,2和3都是自幂数#include <stdio.h>//计算num^kint k_cifang(int num, int k){ if (k > 0)
2021-08-30 20:53:35
759
原创 字符串左/右旋转问题
字符串左/右旋转问题字符串左/右旋转问题,以左旋转为例暴力解法//arr 要旋转的字符串//k 要旋转的位数void left_move(char* arr, int k){ assert(arr!=NULL); //旋转一次 while (k--) { int i = 0; char tmp = *arr; while (*(arr + i) != '\0') { *(arr + i) = *(arr + i+1); i++; } if(i!=0)
2021-08-30 18:40:16
227
原创 判断一个数是否在杨氏矩阵中,在就返回坐标
判断一个数是否在杨氏矩阵中,在就返回坐标#include <stdio.h>int findnum(int arr[3][3], int k, int* row, int* col)//以3*3矩阵为例子,实际使用应更换{ //选择在右上角开始查找 int x = 0; int y = *col - 1; while (x <= *row - 1 && y>=0) { //所选定的数大于要查找的值,则去掉最右边的一列 if (arr[x][y]
2021-08-30 17:10:42
108
原创 自定义函数实现memcpy和memmove
自定义函数实现memcpy#include <string.h>#include <assert.h>void* my_memcpy(void* dest, const void* src, size_t num){ //断言 assert(dest && src); //返回原始dest指针 void* ret = dest; //以字节为单位进行拷贝,直到拷贝完全 while (num--) *((char*)dest)++ = *((ch
2021-08-30 16:10:54
204
原创 自定义函数实现strstr字符串查找函数
自定义函数实现strstr字符串查找函数自定义函数实现strstr字符串查找函数编译环境VS2019#include <stdio.h>#include <assert.h>char* my_strstr(const char* p1, const char* p2){ //断言 assert(p1 && p2); char* s1 = NULL; char* s2 = NULL; char* cur = (char*)p1; if (*p2
2021-08-29 11:47:49
346
原创 自定义函数实现strncmp字符串比较
自定义函数实现strncmp字符串比较自定义函数实现strncmp字符串比较不同编译环境代码可能不一样,以VS2019作为示例#include <stdio.h>#include <string.h>#include <assert.h>int my_strncmp(char* s1, char* s2, int n){ //断言,当str1和str2为空指针时报错 assert(str1 && str2); //当比较位数为0时 i
2021-08-29 10:24:03
231
原创 自定义实现strncat 字符串追加
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar
2021-08-29 10:11:19
152
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅