- 博客(12)
- 资源 (15)
- 问答 (1)
- 收藏
- 关注
原创 注意cout陷阱,访问空指针(char*)崩溃
先来看一段代码:#include <iostream>int main() { const char* np = nullptr; printf("printf np:%s\n", np); std::cout << "np: " << np << std::endl;}在代码中,我们分别使用printf()函数和cout函数输出了空指针。最后运行的结果是 printf输出(null),cout崩溃。cout崩溃的原因:C++中的std:
2020-10-30 01:19:57 2863 4
原创 忽略表达式溢出带来的问题,即 int类型 与 int类型 的积不能超过 int的范围,否则会整型溢出。
对于int类型,范围在负20亿·正20亿之间,如果超过这个范围就会发生溢出。比如:int a = 1000000;cout << a*a << endl; //-727379968a是int类型,而a*a也会按照int的范围进行计算,因此最终的结果会造成溢出。而如果我们把b设置long long 类型,b*b 就会按照long long类型进行计算。long long b = a;cout << b * b << endl; //10000
2020-10-28 15:34:49 458
转载 深入理解C++11 | 第三章 通用为本,专用为末
文章目录一、继承构造函数二、委派构造函数三、右值引用:移动语义和完美转发3.1 指针成员与拷贝构造3.2 移动语义3.3 左值、右值与右值引用一、继承构造函数C++中的自定义类型——类,是C++面向对象的基石。类具有可派生性,派生类可以自动获得基类的成员变量和接口(虚函数和纯虚函数,这里我们指的都是public派生)。不过基类的非虚函数则无法再被派生类使用了。这条规则对于类中最为特别的构造函数也不例外,如果派生类要使用基类的构造函数,通常需要在构造函数中显式声明。比如下面的例子:struct
2020-10-24 17:35:07 714 3
原创 C语言练习 | 万年历小程序
#include <iostream>using namespace std;// 某年第一天是星期几int Week_2100_1(int year){ int y = 2100, w = 5; // 2100 年第一天 周三 /* ** 一年365天,52周....1天 ** 则,每多一年,星期数+1 // 闰年+2 ** 每少一年,星期数-1 // 闰年-2 */ int diffYear = year - y; // 相差几年 w += diff
2020-10-24 00:24:03 268
原创 windows网络编程 | 笔记:通过连接套接字上获取IP和端口
1. 通过连接套接字获得本地IP和端口。 struct sockaddr_in sa; int len = sizeof(sa); if (!getsockname(ConnectSocket, (struct sockaddr*) & sa, &len)) { printf("Client Ip:%s ", inet_ntoa(sa.sin_addr)); printf("Client Port:%d \n\n", ntohs(sa.sin_port)); }
2020-10-10 22:32:14 1605 1
转载 深入理解C++11 | 第二章:保证稳定性和兼容性
一、保持与C99兼容1.1 预定义宏1.2 __func__预定义标识符1.3 _Pragma操作符1.4 变长参数的宏定义以及 __VA_ARGS__1.5 宽窄字符串的连接二、long long整型三、扩展的整型四、宏__cplusplus五、静态断言5.1 断言:运行时与预处理时5.2 静态断言与static_assert六、noexcept修饰符与noexcept操作符七、快速初始化成员变量八、非静态成员的sizeof九、扩展的friend语法十、final/over
2020-10-10 16:09:01 1068
原创 windows网络编程 | 基于控制台的循环并发式服务器/客户端程序
文章目录服务器端完整代码客户端完整代码本程序代码基于 《windows网络编程》 5.4 编程举例 修改所得。程序功能:向指定服务器发起连接请求,与服务器之间实现收发数据,然后关闭连接。客户端实现用户输入信息方式与服务器对话。1)使用基本的服务器编程模式,创建流式套接字,根据指定的端口号绑定服务,建立监听队列,并接受来自客户端的连接请求,收发数据;使用基本的客户端编程模式,能够创建流式套接字,通过用户指定的服务器地址 。2)通过改进服务器端,实现服务器循环为多个客户端提供服务;服务器端能够实现显示
2020-10-08 00:01:06 617
原创 windows网络编程 | 基于控制台的简单服务器/客户端程序(5.4小节随书案例)
文章目录5.4 编程举例5.4.1 基于流式套接字的回射客户端编程操作5.4.2 基于流式套接字的回射服务器端编程操作运行实例1. 创建解决方案2. 客户端设置3. 设置多项目启动3.1 设置多项目启动3.2 设置启动顺序4. 启动运行注:本例参考自《windows网络编程》一书。5.4 编程举例本节通过一个Windows控制台应用程序实现基于流式套接字的回射功能。所谓回射是指服务器接收客户发来的字符,并将接收到的内容再次发送回客户端,以此作为检测网络和主机运行状态的一种途径。客户发送的字符可以是用
2020-10-07 16:55:17 1080 5
原创 C++ | 匿名函数(lambda表达式)
lambda表达式:[capture list] (params list) mutable exception-> return type { function body } 也叫匿名函数,以下统称为匿名函数。对于一个函数而言,由4部分组成:返回值类型 函数名(形参列表){ 函数体;}而针对匿名函数而言,因为没有名字,我们在定义时即使用,它由以下几部分组成:[捕获列表] (形参列表) ->返回值类型{ 函数体;}其中,形参列表与返回值类型中还存在可选参数,我们后面在讨
2020-10-03 17:58:59 8045 1
原创 771. 宝石与石头
给定字符串J 代表石头中宝石的类型,和字符串 S代表你拥有的石头。 S 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石。J 中的字母不重复,J 和 S中的所有字符都是字母。字母区分大小写,因此"a"和"A"是不同类型的石头。示例 1:输入: J = “aA”, S = “aAAbbbb”输出: 3示例 2:输入: J = “z”, S = “ZZ”输出: 0注意:S 和 J 最多含有50个字母。J 中的字符不重复。来源:力扣(LeetCode)
2020-10-02 23:53:41 330
原创 Linux C编程 | 库文件
文章目录一、库文件二、标准目录创建库文件:创建静态库文件创建共享库文件三、库文件实例实例一:多文件编译实例二:制作静态库实例三:制作共享库实例四:优先使用共享库一、库文件预先编译好的方法的集合。在Linux下有两种库文件:静态库与共享库。静态库是以 libxxx.a 的形式存在的库文件,在程序编译时(使用到的方法)会加载到程序中成为程序的一部分。共享库是以 libxxx.so 的形式存在的库文件,在程序编译时不会加载的程序中,在程序运行时才进行加载。两种库文件各有优缺点,下表简单的归纳
2020-10-01 16:42:13 296
算子网掩码.exe 计算子网掩码
2020-11-23
子网掩码计算器.exe
2020-11-23
SubNetMaskCalc.exe 自动计算ip子网工具
2020-11-23
NetMask.exe 自动计算ip子网工具
2020-11-23
EasyX_Help.chm
2019-10-06
mininet 如何在命令行下,将当前拓扑结构保存。
2021-12-13
TA创建的收藏夹 TA关注的收藏夹
TA关注的人