Think88666的博客

热爱生活

25个简单shell例子

linux中shell变量$#,$@,$0,$1,$2的含义解释: 变量说明: $$ Shell本身的PID(ProcessID) $! Shell最后运行的后台Process的PID $? 最后运行的命令的结束代码(返回值) $- 使用Set命令设定的Flag一览 $* 所有参数列表。如&quo...

2019-06-25 21:18:03

阅读数 4

评论数 0

C++面试题(1)

1、链表反转 我的前一篇面试题有相关的,就不写了 2、实现函数查找数组中第二大的数字(关键点——把前两个最大的数都保存起来) //找出第二大的数 int search_sec(int *arr, int len) { int ret[2] = { 0,0 }; for ...

2019-06-14 21:49:31

阅读数 220

评论数 0

子类拷贝构造是否会调用父类的拷贝构造?

有时候我们习惯性的认为在子类拷贝构造的时候会自动的调用父类的拷贝构造,这种观点来自于子类构造时会自动调用父类的构造函数(父类先于子类构造),子类析构的时候会自动调用父类的析构函数(父类后于子类析构)。 但实则上子类拷贝构造函数不会自动调用父类的拷贝构造函数——从而导致基类数据缺失的问题 代码如...

2019-06-12 22:30:51

阅读数 72

评论数 0

二维数组的本质

在C/C++中无论是几维的数组,那必然是连续的内存空间。 那对于二维数组,是怎么解释的呢? 我们可以这样理解: 实则上二维数组也是一个一维的数组,比如int a[5][4] ,这个数组的长度是5,每一个元素又都是一个数组int[4]。 从以下代码可以证明二维数组是连续空间,而且正如上面描述...

2019-06-02 22:08:30

阅读数 70

评论数 0

指针相加减

下面举一个非常简单的例子来进入这个话题: int main() { int a[5]; int *p1 = &a[0]; int *p2 = &a[4]; printf("%d \n", p1); pr...

2019-06-01 11:55:34

阅读数 66

评论数 0

二分查找

二分查找法是非常高效的查找算法(时间复杂度为O(log2n)),使用该算法的前提是,容器是有序的。 实现二分查找的难点在于 确定 循环终止条件 这里的代码是用C语言写的,在C中int和int相除是会自动向下取整的 也就是假设相除结果为8.9但实际上也是8 整个代码如下: ////////...

2019-06-01 11:17:48

阅读数 75

评论数 0

static关键字总结

1.隐藏。(static函数,static变量均可) 当同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。加了static的变量或者函数则只是当前文件可见,所以可以利用这一特性可以在不同的文件中定义同名函数和同名变量,而不必担心命名冲突。 2.static的第二个...

2019-05-31 21:43:32

阅读数 60

评论数 0

extern的作用

1、声明外部的变量 由于编译是对单个的文件进行编译,所以在编译一个a.cpp文件的时候,若是要在a.cpp中使用b.cpp中的变量,直接使用则编译肯定会报错的,所以这个时候应该永extern修饰在a.cpp中所使用的b.cpp中的变量,这个时候编译器会忽略这个错误,直到链接的时候(&quo...

2019-05-30 22:14:21

阅读数 65

评论数 0

数组名和数组名取地址的区别

直接上demo,代码如下: int main() { int arr[10]; printf("%d \n", &arr); //7338716 printf("%d \n", arr); //7338716 printf(&...

2019-05-24 22:28:34

阅读数 117

评论数 0

游戏开发存档版本号的妙用

在游戏开中,若是要开发一个新的功能,那么必然要兼容以前的用户,但是以前的用户数据已经存档了,当用户再次读档读出的数据不含有我们新加入的数据,那岂不就出了大问题。 解决办法,就是在存档数据中加入版本号。当读档用户时,判断其版本号,若满足则加载,不满足则只加载以前的数据,新的数据赋予一个初值即可。 ...

2019-05-24 21:52:02

阅读数 115

评论数 0

游戏开发核心技术之-存档与读档(1)

游戏开发这个领域相对比较神秘一些,会用一些技巧性的编程技术,当然也不难。 今天我们就来实现游戏开发领域中的读档与存档功能,并剖析其中的技术点: 1、首先我们要知道结构体0数组元素的用途。建议看这篇博客: https://blog.csdn.net/Think88666/article/d...

2019-05-24 21:44:36

阅读数 3324

评论数 3

C语言指针加1

C语言中的指针加1并不只是简单的地址加1而已,实际上指针加1,地址偏移的多少是与指针的类型相关的。 demo如下: int main() { char arr1[10]; char *p1 = &arr1[0]; printf("%d \n", p1...

2019-05-24 21:41:55

阅读数 159

评论数 0

怎么样连接两个char*型的字符串变量(字符串拼接)

主要使用两个函数 strcat和strcpy strcat本身就是连接字符串的,但是要保证空间足够。 int main() { char buff[1024]; memset(buff, 0, sizeof(buff)); const char *buff2 = " tes...

2019-05-19 11:41:39

阅读数 49

评论数 0

C/C++获取时间及时间格式转换

window下 #include "windows.h" int main() { SYSTEMTIME s_time; GetLocalTime(&s_time); printf("%04d %02d-%02d %02d:%02d:%02...

2019-05-19 11:05:17

阅读数 58

评论数 0

用c语言如何在数字前自动补0

在我们需要格式时间格式的时候会用到这点 int a=1; printf("a=%04d\n",a); //输出6位十进制整数左边补0,显示a=0001 比如这个%04d的0就是指在前面补0占位,4代表位宽。一般这两个要一起用。当然,当数字本身长度比宽度长的话,那这就不起...

2019-05-19 09:55:59

阅读数 81

评论数 0

使用wofstream写入中文(Unicode)字符时无内容

写入文件时用了中文,所以用wofstream,但写不进去,文件为空 用的是STL,后来查了查,这个问题很普遍,微软官方有解决方法,关键是一句: //wofstream confFile confFile.imbue(std::locale("chs")); 解决了...

2019-05-19 09:40:12

阅读数 61

评论数 0

使用Boost asio实现异步的TCP/IP通信

服务器: #include "stdafx.h" #include <iostream> #include <boost/shared_ptr.hpp> #include <boost/asio.hpp&...

2019-05-12 22:19:36

阅读数 71

评论数 0

用asio的定时器实现带超时的connect,备忘

// test.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <boost/asio.hpp> #include <boost/bind.hpp&...

2019-05-12 22:18:19

阅读数 60

评论数 0

boost asio异步读写网络聊天程序客户端 实例详解

boost官方文档中聊天程序实例讲解 数据包格式chat_message.hpp <pre name="code" class="cpp"><h3>数据包chat_message.hpp&l...

2019-05-12 22:16:38

阅读数 75

评论数 0

vector合并

vector的合并有三种方法: 1、当然就是自己写循环来遍历合并了,但是运行效率极低,不推荐这样做 2、用merge函数,在头文件<algorithm>中,使用该函数需要注意的: a、合并的目标容器必须要有足够的空间,也就是size的大小必须要够 b、源...

2019-05-11 10:25:45

阅读数 51

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭