C/C++学习
文章平均质量分 67
给自己加油.
诸葛老刘
生命短暂,我用python
展开
-
初学C语言之socket基础
文章目录一. socket基本概念二. 套接字(socket)三.socket 通信过程四. 客户与服务端模式4.1 服务端4.2 客户端4.3 相关的函数4.3.1 send函数4.3.2 recv函数4.3.3 socket 函数4.3.4 gethostbyname函数4.3.5 connect 函数4.3.6 bind函数4.3.7 listen函数4.3.8 accept函数4.3.9 函数小结一. socket基本概念socket是在网络中用于计算机程序与其它计算机中的程序之间的通信方式,原创 2021-06-02 16:47:51 · 1251 阅读 · 0 评论 -
初学C语言之TCP协议简介
文章目录一. TCP(Transmisson Control Protocol) 传输控制协议1.1 TCP/IP1.2 TCP/IP的内部1.3 TCP使用固定的连接1.4 IP是无连接的1.5 IP路由二.IP地址,网关,子网掩码, DNS服务器2.1 IP地址2.2 网关2.3 子网掩码2.4 DNS服务器2.5 特殊的IP和主机名三. 应用层协议在实际开发中,30%以上的需求与网络有关,学习一哈网络的基础知识.这些都是常规知识.没有难度和深度.一. TCP(Transmisson Control原创 2021-05-27 15:15:50 · 641 阅读 · 0 评论 -
初学C++之类的继承与派生及多态
文章目录一. 基本概念二. 基类和派生类三.访问控制和继承3.1 访问控制3.2 继承类型四. 基类与派生类的指针五.多继承六. 类的多态6.1 虚函数6.2 纯虚函数6.3 C++接口 (抽象类)一. 基本概念继承是面向对象程序设计中最重要的一个概念,继承允许我们根据一个类的定义来定义另一个类,达到代码重用的效果.当创建一个类时,如果待创建的类与另一个类存在某个共同的特征,那就可以不用重写成员变量和成员函数,只需要指定继承另一个类即可.被继承的类称为父类或基类,新建的类称为子类或派生类,二. 基类原创 2021-05-26 15:01:24 · 355 阅读 · 0 评论 -
初学C++之运算符重载
文章目录一.基本概念:二. 运算符重载一.基本概念:在C中, 运算符只能用于基本数据类型, 比如==可以来判断两个整数是否相等 ,但不能用于判断字符串相等,也不能用于判断结构体是否相等.在C++中,运算符的重载就是把运算符赋予了新的含义,如果类重载了==, 那么就可以用==来判断两个类是否相等.二. 运算符重载operator是C++的关键字, 它和运算符==一起使用,表示一个运算符重载函数,可以理解为: 将operator和运算符即operator==视为一个类的成员函数名, 示例:clas原创 2021-05-25 15:37:05 · 144 阅读 · 0 评论 -
初学C++之动态内存管理
文章目录一. 特点二. 语法三. 与C的不同之处C++的内存运算符 new 和delete一. 特点C++通过new关键字来进行动态内存申请,是基于数据类型的, delete关键字用于释放内存.二. 语法datatype *pointer = new datatype;delete pointerint *pi= new int;(*pi)=100;delete(pi);如果new出来的是类, 则相当于创建对象,所以会调用构造函数, delete时,也会调用析构函数.三. 与C的不原创 2021-05-25 15:11:42 · 58 阅读 · 0 评论 -
初学C++之 vector容器
文章目录一. 定义vector是一个封装了动态数组的顺序容器,跟其它类型的容器一样,它能够存放各种数据类型的数组和对象,优点:根据需要自动调整大小, 随时放入更多元素,自身拥有更多的成员函数.一. 定义#include<vector>using namespace std;int main() { vector<int> vi; //定义一个存入整形数据的容器.}...原创 2021-05-25 14:58:07 · 175 阅读 · 0 评论 -
初学C++之string类
文章目录一. 创建string对象二.string的重载操作符三.最重要的一个成员函数四.string特性描述函数五.string的本质六.应用在C语言中,用0结尾的字符数组表示字符串, 这样就有一个问题, 就是定义大小后不能修改,存入的内容只能比数组小, 不能大, 不小存多了,会引起内存的溢出,C++的string很好的解决了这个问题, 它会随着存放字符的长度自动伸缩,不用担心内存溢出的问题,string类还和C语言的字符串之间可以转换.一. 创建string对象#include<strin原创 2021-05-24 16:55:52 · 113 阅读 · 0 评论 -
初学C++之引用
文章目录一.基本概念二. 引用的应用在C语言中&是取地址符, 但在C++中,它有了新的特性, 叫做引用(reference).一.基本概念引用就是某一变量的一个别名, 对引用的操作与对变量的操作完全一致.引用的声明方法: 类型标识符, &引用名=目标变量名int a;int &ra=a; //定义引用ra, 它是变量a的引用,即别名说明:&在此处不是求地址运算,而起标识作用.类型标识符是指目标变量的类型,声明引用时,必须同时对其进行初始化,否则编译器原创 2021-05-24 15:47:29 · 60 阅读 · 0 评论 -
初学C++之类和对象
文章目录一. 基本概念二.面向对象编程(Object Oriented Programming, OOP)三. 编写自己的类3.1 类成员的访问权限3.2 成员变量的命名3.3 构造函数3.4 析构函数一. 基本概念C语言中的结构体(struct)是一种构造类型,可以包含若干成员变量.C++中的类(class)可以看成是结构体的升级版, 类也是一种构造类型, 但是进行了一些扩展, 类的成员不但可以有变量, 还可以有函数,通过类定义出的变量有其特定的称呼, 叫做对象.特别需要注意的是:class在原创 2021-05-24 14:48:44 · 867 阅读 · 9 评论 -
初学C++之函数重载
文章目录一. 基本概念一. 基本概念在实际开发中, 有时候我们实现几个功能非常类似的函数, 只是细节不同, 例如把变量的值写入文件,变量的类型int, long, double, char, 需要通过参数把变量传入函数, 在C语言中允许函数重名, 只能写出四个不同名的函数,如: writetofile_int(), writetofile_long() writetofile_double().这不很难受吗?C中独一无二函数名的限定对函数库的使用者和作者都是一种负担,在C++中, 允许多个函数有相原创 2021-05-20 18:04:57 · 53 阅读 · 0 评论 -
初学C++之 C与C++的关系与区别
文章目录一. C++程序的命名规则二. C++程序的编译2.1 安装g++2.2 C++的输入和输出2.3 C++的bool类型2.4 C++定义变更的位置更灵活一些2.5 C++函数的缺省参数2.6 C++的动态内存2.7 重点学习的内容c++是在c的基础上增加新的特性. 从语法上看, c是c++的一部分, c语言几乎不用修改就能够以C++的方式进行编译.一. C++程序的命名规则C++头文件一般采用.h后缀, 或者.hppC++程序文件一般采用.cpp后缀, 也有采用.cc的, 实际开发中,建议原创 2021-05-20 17:16:37 · 753 阅读 · 1 评论 -
初学C语言之makefile
文章目录makefile的编写makefile中的变量linux中, make 用来管理多模块程序的编译和链接,直至生成可执行文件.make 程序需要一个编译规则说明文件, 称为makefile, makefile文件中描述了整个软件工程的编译规则和各个文件之间的依赖关系.简单理解: makefile 就像一个shell脚本, 其中可以执行操作系统的命令, 它带来的好处就是可以实现"自动编译", 一旦写好, make一下, 整个软件功能就完全自动编译, 提高了软件开发的效率.make 是一个命令工具原创 2021-05-20 15:03:01 · 373 阅读 · 0 评论 -
初学C语言之gdb调试
文章目录一. gdb 安装二. 调试前的准备工作三. 调试命令gdb是用来调试程序的, 可以查看程序执行过程中的变量的值及逻辑变化等情况, 功能很强大, 学习一哈.一. gdb 安装[root@bi ~]# gdb -v // 查看是否安装, 结果是没有安装的-bash: gdb: command not found[root@bi ~]# yum -y install gdb // 既然没有安装,那就安装一下噻Loaded plugins: fastestmirrorDeterminin原创 2021-05-19 17:58:00 · 195 阅读 · 0 评论 -
初学C语言之 系统错误信息
文章目录在C语言中我们经常需要调用库函数, 并通过函数的返回值判断调用是否成功. 有一个全局变量errno, 存放了函数调用过程中产生的错误码.为防止和正常的返回值混淆,库函数的调用一般并不直接返回错误码, 而是将错误码存入一个名为errno的全局变量中. 如果调用失败,可以通过读取errno的值来确定问题所在,推测程序出错的原因, 这也是调试程序的方法.配合strerror和perror两个库函数, 可以方便地查看出错的详细信息.strerror 在<string.h>中声明, 用于获原创 2021-05-17 15:52:28 · 288 阅读 · 0 评论 -
初学C语言之时间操作
文章目录一. 别名二. 相关的库函数2.1 time 库函数2.2 localtime库函数2.3 mktime 库函数2.4 代码演示三. 程序睡眠四. 计时器五. 扩展函数库在实际开发中, 对日期和时间的处理操作非常多, 本文操作系统的时区配置为中国北京或上海时间.在root用户中执行, 修改命令如下:[root@bi hello]# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime[root@bi hello]# date // 查看当前原创 2021-05-14 12:59:18 · 637 阅读 · 11 评论 -
初学C语言之目录操作
文章目录一. 获取当前目录二.切换目录三. 目录的创建和删除四. 获取目录中的文件列表4.1 包含头文件4.2 包含的库函数4.3 数据结构主要说明linux下,创建目录和列出目录中的文件两个功能, 使用场景最多一. 获取当前目录char *getcwd(char *buf, size_t size)二.切换目录int chdir(const char *path);三. 目录的创建和删除创建目录 int mkdir(const char *pathname, mode_t mode)原创 2021-05-11 18:21:30 · 2006 阅读 · 0 评论 -
初学C语言之文件操作
文章目录一. 文本文件和二进制文件二. 打开和关闭文件三. 文本文件的读写四. 二进制文件的读写4.1 二进制文件的写入4.2 二进制文件的读取一. 文本文件和二进制文件文本文件, 数据以字符组成, 把每个ASCII码值存入文件中,每个ASCII码值占一个字节, 每个字节表示一个字符, 所以文本文件也称字符文件或ASCII文件二进制文件: 把数据对应的二进制数值存储到文件中, 是字节序列文件二. 打开和关闭文件C语言中对任何文件进行操作, 都必须先"打开"文件, 操作完成后, 再"关闭"文件原创 2021-05-10 18:03:32 · 388 阅读 · 0 评论 -
初学C语言之动态内存管理
文章目录一. 动态内存管理(why?)二. 相关的库函数2.1 malloc函数2.2 free函数三. 示例:四.坑:4.1野指针五.应用经验一. 动态内存管理(why?)在C语言中, 编写程序的时候不能确定内存变量应该定义为多大,程序员希望在程序运行的时候根据数据量的大小,向系统动态地获得内存空间, 所谓动态内存管理,就是指在程序执行过程中,动态地申请和回收内存空间.二. 相关的库函数2.1 malloc函数申明格式为: void *malloc(unsigned int size); 意思原创 2021-05-10 14:49:37 · 107 阅读 · 0 评论 -
初学C语言之main函数
文章目录一. main函数的参数在实际开发, main函数一般都需要参数,没有参数的情况极少.main函数的参数是从命令提示符下执行程序的时候输入, 例如ls命令一. main函数的参数main函数的参数有三个:argc, argv和envpint argc 用于存放命令行参数的个数char *argc[] 是个字符串的数组, 每个元素都是一个字符指针, 指向一个字符串, 即命令行中的每一个参数char *envp[]是个字符串的数组, 每个元素都是指向一个程序运行时的环境变量的字符指针.,原创 2021-05-08 18:04:01 · 202 阅读 · 0 评论 -
初学C语言之格式化输出+解析XML函数
文章目录一. 格式化输出二.格式化输出到字符串三. 解析xml函数一. 格式化输出格式说明符的形式说明如下:%[flags][width][.prec] type类型符 type表示输出数据的类型宽度符 width%12s 是输出12位的字符串,不足补空格对齐符 flags+是右对齐, 默认缺省值-是左对齐, %-12lf是指输出左对齐的12位浮点数, 不足12位,则空格补齐精度符 prec适用于浮点数的输出, 小数部分的位数,四舍五入%12.2lf 输出小数位2位,原创 2021-05-08 17:31:10 · 1337 阅读 · 0 评论 -
初学C语言之结构体
文章目录一. 定义形式结构体使用示例C语言中,使用结构体(struct) 来存放一组不同数据类型的数据.举例理解, 如果定义一个人怎么定义: 有姓名,年龄,体重, 身高, …, 如果不使用结构体, 就需要对每个变量进行定义和初始化,若把这些属性放到一个集合里,就成了结构体,一. 定义形式struct 结构体名{ 成员变量1: 成员变量2: ...};// 特别注意最后的这个;不能少结构体是一种集合, 它里面包含了多个变量和数组, 它们的类型可以相同,也可以不同.每个这样的变量或数组原创 2021-05-07 18:03:17 · 399 阅读 · 0 评论 -
初学C语言,字符串
文章目录字符串的定义字符串的初始化字符串与指针字符串输出坑:常用的库函数应用经验字符串的定义把字符串储存在char类型的数组中, 如果char类型的数组末尾包含一个表示字符串末尾的空字符\0, 则该数组就组成了一个字符串char strname[21] ; //定义一个最多存放20个英文字符或10个中文字符的字符串, 字符串以""包围字符串的初始化void main(){ char strname[21]; memset(strname, 0, sizeof(strname)); // 将全原创 2021-04-28 14:46:21 · 131 阅读 · 0 评论 -
初学C语言中的浮点数
文章目录浮点数C语言规定:总结:浮点数的输出常用的库函数应用技巧科学记数法浮点数浮点数也称小数或实数, C语言中采用float 和double关键字来定义小数, float 称为单精度浮点型, double称为双精度浮点型,long double更长的双精度浮点型.浮点数通常只是实际值的近似值, 比如7.0可能被存储为6.999999C语言规定:float 类型必须有至少6位有效数字, 且取值范围至少是10-37-1037double与float的最小取值范围相同, 但至少必须有表示10位原创 2021-04-27 14:07:03 · 2530 阅读 · 0 评论 -
初学C语言中的字符
文章目录字符类型字符就是整数常用库函数(必须掌握的,常用)字符类型定义char, 只能使用单引号''来包围表示, 不能使用双引号""包围. 而字符串只能用双引号""包围,不能用单引号''包围.格式化输出字符使用%c, 输出字符串使用%s.ASCII码表ASCII控制字符(字符编码0-31), 共32个, 不能用于打印的编码, 只能用控制像打印机一样的外围设备ASCII可打印字符,字符编码32-127,共95个,转义字符, 控制字符不有被打印出来,但可以通过转义字符的形式, 比如换行符原创 2021-04-26 17:37:49 · 302 阅读 · 0 评论 -
初学C语言中的整数
文章目录一. 整数1.1 定义一. 整数1.1 定义关键字int 是integer的简写有四个修饰符:signed 有符号的, 可以用来表示正数和负数, 数学计算unsigned 无符号的, 可以用来表示正数, 比如身高,体重什么的short 短的, 一般情况下, 整数占用内存4个字节, 状态或类型long 长的, 更长的整数, 科学计算在应用开发中, 要考虑取值范围. 少用short 慎用int, 多用long补齐位数的格式化输出,举例:现有: 2021-4-2 需求是格式原创 2021-04-22 18:12:23 · 359 阅读 · 0 评论 -
关于C语言学习过程的零散笔记
我是python开发, 现在学C, 文中代码格式偏向于python风格, 但不影响代码使用, 文中的代码已通过编译且正常运行:文章目录一. 指针1.1 注意事项:2.1 难点理解一. 指针1.1 注意事项:1.1.1 在printf输出函数中, 输出内存地址的格式控制符是%p, 地址采用十六进制的格式显示.1.1.2 内存随机分配, 每次分配的地址可能都不一样.2.1 难点理解2.1.1 通过指针操作内存变量定义了指针变量,并指向了内存变量的地址, 就可以通过指针来操作内存变量(在指针原创 2021-04-22 16:39:07 · 104 阅读 · 0 评论