
C++
weixin_39410618
汇编c数据结构算法操作系统编译原理希望能学到80岁吧
展开
-
汉诺塔递归实现和循环实现的比较
下面是参考文献c语言程序设计 夏涛 主编 北京邮电大学出版社https://blog.youkuaiyun.com/maomao8246/article/details/84841431下面代码完全参考教科书// hanoi.c 汉诺塔的递归实现#include <stdio.h>void move(unsigned int n, char* head, char* tail);void hanoi(unsigned int n, char* a, char* b, char* .原创 2021-08-18 22:42:37 · 513 阅读 · 0 评论 -
数字的蛇形输出(这个玩意儿,可是钻研了两天,真特么的烧脑了!)
//数字的蛇形输出#include <iostream>#define LEN 10using namespace std;typedef struct direct{ int x; int y;}direct;enum mycase {_right, _left_down, _down, _right_up};direct d[4] = {{0, 1}, {...原创 2019-11-07 22:03:52 · 314 阅读 · 0 评论 -
昨天又做了一些题目,权是为了练手,蛮有意思的!
//测试这个程序的运行结果为 7 28#include <iostream>using namespace std;int main() { int x = 2, y = 0, z; x += 3 + 2; printf("%d", x); x *= y = z = 4; printf("%d", x);}//三元运算符的一个典型例子#include <...原创 2019-11-02 10:39:19 · 146 阅读 · 0 评论 -
没想到求一个数的素数因子的题目还真有点难度。。。因此在这里发一下。
//求正整数的素数因子,里面似乎有定义了多余的变量。算法近似耍赖,不过似乎得到了正确的结果。#include <iostream>using namespace std;int is_prime(int n) { int i; for(i = 2; i < n - 1; i++) { //这里似乎做了冗余的运算,但是不知道怎么改,似乎是n的一半就好 if(!(n...原创 2019-10-31 21:33:46 · 426 阅读 · 0 评论 -
做入门题或许是有用的吧!
#include <stdio.h>int main(void) { int A, count = 0, a; printf("请玩家1输入一个1到100的整数:"); scanf("%d", &A); while (A < 1 || A > 100) { printf("\n输入的整数不在1到100之间,请重新输入:"); scanf("%d...原创 2019-09-27 16:22:39 · 125 阅读 · 0 评论 -
SnailOS 的显存地址是怎么计算出来的?
在SnailOS 屏幕显示的函数中,我们明显的使用显存地址0xe0000000,然而这个值是从哪里来的呢?说起来还真是挺曲折的,不过为了让大家也不糊涂,我还要在这次啰嗦一些。(以前的文章应该已经说过它的由来,不过时间已久,我们就不得不再提起,不然就忘得差不多了)。1、保护模式的图形模式的由来。我们保护模式的图形模式,说起来是由grub给我们直接构建来的,只要我们的引导启动文件符合grub的...原创 2019-05-21 22:48:26 · 318 阅读 · 0 评论 -
SnailOS printf 和屏显函数重写
//在打印函数中,字符串常量定义为(强制类型转换)无符号常字符指针似乎是必须的//但不知道原理为何!//在变量转化为字符串的函数中,如果/为奇数个就很可能会出现显示乱码的问题。//看来是个棘手的问题,还是等到将来再解决吧!//drawfont()如果在指定了行号的情况下,是否能够对全部的东西正常显示,我还//是没有把握,不过基本正常了,倒是这个程序调试了很长时间。extern...原创 2019-05-06 20:12:47 · 230 阅读 · 0 评论 -
SnailOS C++ 重写printf
//在打印函数中,字符串常量定义为无符号常字符指针似乎是必须的(强制类型转换)//但不知道原理为何!//在变量转化为字符串的函数中,如果'/'为奇数个就很可能会出现显示乱码。//看来是个棘手的问题,还是等到将来再解决吧!extern "C" { typedef unsigned int _u_i; struct Draw{ static char buf[0xff];...原创 2019-05-06 08:59:13 · 274 阅读 · 0 评论 -
C++继承 多态 虚函数 晚捆绑 的一个练习
//: C0:test300.cpp// C++ exercise:#include <iostream>using namespace std;namespace mysystem { class Object{ public: Object() { cout << "This Object Construction!\n"; } st...原创 2019-04-19 22:36:02 · 179 阅读 · 0 评论 -
SnailOS 这里算是坐上C++的列车了吗?
AS = asC = g++CF = -cLD = ldLDF = -Ttext 0x100000OBJ = boot.o kernel.o ./font/myfont1.o ./font/myfont.odefault: $(OBJ) make boot.o make kernel.oboot.o: boot.s $(AS) -o $@ $< ker...原创 2019-04-28 11:13:55 · 173 阅读 · 0 评论 -
管窥:博大精深的C指针,你都理解了吗?反正我是特么难得明白!当然也是真的糊涂!
这里没有一行注释,参考书目为C++编程思想第一卷第三章函数指针一节。我想:有没有注释都是一种骂街的感觉,也不知道发明编译原理的人的大脑都是什么样的,如此复杂的东西是怎么想出来的。#include <stdio.h>int main(void){ void (*(*f)(int, char, long))(int); int* (*(*(*f1)(int, cha...原创 2019-04-28 00:20:08 · 170 阅读 · 0 评论 -
这一次想用C++来写一个操作系统,不过看起来没那么容易。
#boot.sMULTIBOOT2_HEADER_MAGIC = 0xe85250d6GRUB_MULTIBOOT_ARCHITECTURE_I386 = 0x0MULTIBOOT_HEADER_TAG_ADDRESS = 0x2MULTIBOOT_HEADER_TAG_OPTIONAL = 0x1MULTIBOOT_HEADER_TAG_ENTRY_ADDRESS = 0x3MUL...原创 2019-04-22 22:24:00 · 1355 阅读 · 0 评论 -
C++练手
#include <string>#include <vector>#include <iostream>#include <fstream>using namespace std;template <class T>class Mystack{public: Mystack(int max){ if(max &...原创 2019-03-27 22:12:57 · 214 阅读 · 0 评论 -
动态库的练习,看起来糟糕透了,不过竟然能运行。
这一篇是错误的,在win下建立动态链接库文件显然没有这样简单,而且用visual studio C比用g++要实际的多。#include <vector>#include <iostream>#include "calculator.h"using namespace std;namespace mybase{ void helloworld(void) ...原创 2019-03-31 20:23:24 · 136 阅读 · 0 评论 -
继续练习C++引用和指针
//这个练习试图弄清对象的指针,对象成员的指针,以及引用的问题。#include <iostream>using namespace std;class A{public: A(void){ cout << "A Construction!" << endl; } void print(void) { cout << "A...原创 2019-03-23 18:26:46 · 251 阅读 · 0 评论 -
为什么还在纠结C++,看了这个就不言自明了。
下图是一个开源项目,是一个非常好玩的游戏,而且能够在很多的平台上工作。最重要的一点是:它用C++实现,所以为了管窥一点点的东西都要好好学习C++。当然我对操作系统的追求一点已没有减弱,只是暂时搁置一下吧,毕竟长期做一件事情会很枯燥,特别是完全自学的情况下!对于一个普通人来说,完全自学的感觉是:自己非常的无能,任何小问题都是一个大问题,任何大一点点的问题都会成为一个巨大无比的工程,任何一个工程都是...原创 2019-03-29 22:07:16 · 143 阅读 · 0 评论 -
for(int i:a)的意思
#include <iostream>#include <vector>#include <string>using namespace std;int main(void) { vector<int> a = {3, 1, 2, 4}; for(int i: a) { cout << i << " ";...原创 2019-03-29 21:51:38 · 5880 阅读 · 1 评论 -
这一次把栈的实现稍微的改了一下,觉得比原来好了,当然仍然是只针对基本类型有效。
#include <string>#include <iostream>using namespace std;template <class T>class Mystack{public: Mystack(int max); int size(void); bool push(T t); bool pop(T& t); boo...原创 2019-03-29 21:10:31 · 87 阅读 · 0 评论 -
一个C++类模板练手的例子
纯粹练手,没有任何实际意义。#include <iostream>using namespace std;template <class T, int size>class HelloA{public: HelloA() { cout << "Hello, World!\n"; } char* print(float x, T t)...原创 2019-03-22 21:43:59 · 249 阅读 · 0 评论