
C/C++
文章平均质量分 70
敲完代码好睡觉zzz
好好学习,天天向上。
展开
-
volatile 和 const 的用法
1.volatile类型修饰符,可以让变量被不同的线程访问和修改,也可以防止变量被编译器优化,而const用来限定一个变量不允许被改变,但下面的程序运行结果为20。#includeint main(){ volatile const int num = 10; int *p = (int *) & num; *p = 20; printf("%d\n",num); r原创 2017-10-20 20:39:43 · 361 阅读 · 0 评论 -
自我实现内存管理
在我们使用内存的时候,偶尔会由于疏忽而忘记释放掉已用完的内存,从而引起内存泄露,因此可以写一个内存管理的程序,用来检查那些内存泄露,在什么位置,从而能使程序更高效。代码如下:#pragma once //头文件#include using namespace std;#include #include #include struct BlockInfo{ void* _p原创 2017-10-20 20:40:09 · 304 阅读 · 0 评论 -
别拿浅拷贝不当拷贝
我们知道C++中类里的成员函数中构造函数和拷贝构造都是值拷贝,所以地址也是值拷贝,也就是多个对象用到了同样的一块地址,例如:#include using namespace std;class String{public: String(char* str) :_str(new char[strlen(str)+1]) { strcpy(_str,str);原创 2017-10-20 20:40:06 · 218 阅读 · 0 评论 -
实现一个日期计算器
#include using namespace std;class Date{public: Date(int year = 1900,int month = 1,int day = 1) { //判断输入是否正确 if((year12)||(dayGetMonthDay(year,month))) { cout 0) { while(_day>GetMonthDay(_year,原创 2017-10-20 20:40:03 · 520 阅读 · 0 评论 -
使用mian函数的命令行参数
使用main函数的参数,实现一个整数计算器,程序可以接受三个参数,第一个参数“-a”选项执行加法,“-s”选项执行减法,“-m”选项执行乘法,“-d”选项执行除法,后面两个参数为操作数。#include #include #include enum JUDGE { RIGHT, ERROR};int judge = RIGHT; //设定了一个全局原创 2017-10-20 20:40:00 · 607 阅读 · 0 评论 -
实现将一个字符串转化成对应的整形数字
输入一个字符串比如“+1234”,将其转换成对应的数字1234输出,若是“-1234”,则输出-1234:#include enum Charec{TRUE,FALSE};int check = FALSE;int my_atoi(const char *str){ int num = 0; if((str != NULL)&&(*str != '\0')) { int minus = 0;原创 2017-10-20 20:39:57 · 2262 阅读 · 0 评论 -
模拟实现在一个字符串中查找一个字符串
在标准库中有一个函数strstr()用于在一个字符串中查找一个规定的字符串,这个函数可以模拟实现一下,代码如下:#include #include char *my_strstr(const char str[],const char strstr[]){ int i = 0,j = 0,k = 0; assert(str != NULL); assert(strstr != NULL); for原创 2017-10-20 20:39:54 · 321 阅读 · 0 评论 -
求一个数二进制位中有多少个 1 的不同解法
*返回一个数的二进制表达中1的个数。*#includeint main(){ unsigned int i; scanf("%d",&i); printf("%d的二进制表达中有 %d 个1",i,count_one_bits(i)); return 0;}int count_one_bits(unsigned int m){ int n,count; //原创 2017-10-20 20:39:52 · 564 阅读 · 0 评论 -
打印杨辉三角
*打印杨辉三角* 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 ...... 特点是每个数等于肩上两个数的和#includeint main(){ int i = 0,原创 2017-10-20 20:39:49 · 513 阅读 · 0 评论 -
折半查找 && 在标准输出上打印行号
*折半查找*#includeint half_search(int arr[],int first,int last,int n){ int mid = 0; while(first arr[mid]) //若大于中间数,在后一半查找 { first = mid + 1; } else ret原创 2017-10-20 20:39:46 · 231 阅读 · 0 评论 -
函数指针和回调函数的事
一. 函数指针 关于函数指针的概念,可以想到一个整型指针指向的是一个整型,它的值是所指向对象的地址;一个字符串指针指向的是一个字符串,它的值是所指向字符串的首地址;因此,一个函数指针当然是一个指针变量了,它所指向的是一个函数,它的值就是所指向函数的入口地址。函数指针的定义如下:typedef int data_type;data_type (*pfun)(data_type, data_ty原创 2017-10-20 20:41:09 · 243 阅读 · 0 评论