
c/c++
文章平均质量分 76
c语言基础学习整理
unbeliverpool
if you want, you can
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
c++编程之数据类型
C++定义了表示整数、浮点数、字符和布尔值以及void的基本数据类型,算术类型的存储空间与机器有关,因为机器位数不同,这些类型所能表示的最大(最小)值也因机器的不同而有所不同。类型+含义+最小存储空间如下: bool 布尔型 char 字符型 8位 wchar_t 宽字符型 16位 short 短整型 16位 int 整型 1原创 2016-08-30 14:55:58 · 354 阅读 · 0 评论 -
c++编程之new&delete
转自 深入探究 new 和 delete 在C++中,我们应该经常会用到new、delete,它们是C++的一个关键字,同时也是一个操作符,下面我将我对这两者的了解和学习做一个总结和探讨。一、new和delete的全过程要了解C++中的new和delete,我们首先得对在我们使用new和delete的时候,这个操...转载 2018-05-28 14:22:19 · 456 阅读 · 0 评论 -
c++编程——递归编程
递归实现实现递归编程的方法,需要三步(第2和第3可以同时思考):明确函数作用是什么递归的条件表达式递归结束的条件用三个具体的例子做具体分析:计算n的阶乘斐波那契数列查找二叉树最大的节点example 1: 计算n的阶乘Q1:函数作用是什么?计算n的阶乘,返回结果—— 确定函数及返回值long long factorial(int n) { long long res; return res;}Q2:递归的条件表达式factorial(n) = factorial原创 2020-09-11 11:36:38 · 533 阅读 · 0 评论 -
c++编程之类和对象
类的定义:类是定义同一类所有对象的变量和方法的模型,是struct的延伸与拓展。类可以定义类变量和类方法。系统在第一次在程序中遇到一个类时为这个类建立它的所有类变量的拷贝,这个类的所有实例共享它的类变量。对象的定义:class类型一旦被定义,它的实例变量(对象)就能被创建,并初始化,且能定义指针变量指向它。实例化的类就是对象。在C++里,struct 和 class其实本质上是一样原创 2016-09-09 14:39:49 · 700 阅读 · 0 评论 -
c++编程之const
const —— 一旦赋值便不能被修改的只读变量1:常量与const const有数据类型,而常量没有数据类型。编译器可以对前者进行类型安全检查,而对后者只进行字符替换,没有类型安全检查。常量的值在编译时已知,而且不需要分配存储;而const需要分配内存2、const可修饰基本数据类型、指针、类、传递参数、函数const修饰数据类型与指针char* const a0原创 2016-09-01 16:56:39 · 545 阅读 · 0 评论 -
c++语言基础
引用与指针的区别1) 首先,引用不可以为空,但指针可以为空。前面也说过了引用是对象的别名,引用为空——对象都不存在,怎么可能有别名!故定义一个引用的时候,必须初始化2) 其次,引用不可以改变指向,对一个对象"至死不渝";但是指针可以改变指向,而指向其它对象。3) 再次,引用的大小是所指向的变量的大小,因为引用只是一个别名而已;指针是指针本身的大小,4个字节总之,用一句话归纳为就是:指针指向一块内存,它的内容是所指内存的地址;而引用则是某块内存的别名,引用不改变指向。4) const可以修饰指针原创 2020-12-04 14:42:59 · 171 阅读 · 0 评论 -
c++编程——常见算法01
常见的几种算法整理二分法查找/搜索贪心算法Dp动态规划KMP查找子串Hash的使用sort排序函数的使用二分法查找/搜索题目:给定一个排序的数组(升序)和一个要查找的整数target,用二分法找到target第一次出现的下标(从0开始)重点: 使用while (begin + 1 < end)来结束循环,然后对当前的begin与end进行判断 int binarySearch(vector<int>& nums, int target) {原创 2020-09-11 15:09:39 · 202 阅读 · 0 评论 -
c++编程之关键字string
使用场合:string是C++标准库的一个重要的部分,主要用于字符串处理。可以使用输入输出流方式直接进行操作,也可以通过文件等手段进行操作。同时C++的算法库对string也有着很好的支持,而且string还和c语言的字符串之间有着良好的接口。虽然也有一些弊端,但是瑕不掩瑜。 其中使用的代码多数都是来自cpp官网,因...转载 2018-05-28 11:14:06 · 2706 阅读 · 0 评论 -
c++编程之关键字
c++关键字——typedef auto extern static mutable register volatile typedef使用typedef作用是数据类型定义新名字,或者简化一些比较复杂的类型声明。1、c语言常见,用 pNode 代替 struct tagNode*typedef struct tagNode{char* pItem;p原创 2016-09-07 18:13:02 · 564 阅读 · 0 评论 -
c++开发——Virtual Studio导入开源库
控制台项目,导入ffmpeg库集成需要做的操作:配置头文件库路径配置lib库路径添加依赖项(添加,不要覆盖)将dll文件放到项目路径下ffmpeg已经被下载到pc上。右击项目->属性,进入配置界面,修改附加包含路径,将头文件路径加进去配置头文件库路径配置lib库路径添加依赖项将lib都加进去(注意:不要覆盖,要在后面增加)将dll文件放到项目路径下在主程序路径下,将dll拷贝进去即可...原创 2020-12-04 11:22:44 · 380 阅读 · 0 评论 -
C++编程之——vector使用
C++ vector的用法(整理)vector 是向量类型,它可以容纳许多类型的数据,如若干个整数,所以称其为容器。vector 是C++ STL的一个重要成员,使用它时需要包含头文件:#include<vector>;一、vector 的初始化:可以有五种方式,举例说明如下: (1) vector<in...转载 2020-09-04 14:28:43 · 314 阅读 · 0 评论 -
c++编程之—— STL(标准模板库)简介
什么是STLSTL(Standard Template Library,标准模板库)的从广义上讲分为三类:algorithm(算法)、container(容器)和iterator(迭代器),容器和算法通过迭代器可以进行无缝地连接。几乎所有的代码都采用了模板类和模板函数的方式,这相比于传统的由函数和类组成的库来说提供了更好的代码重用机会。STL的六大组件容器(Container)算法(Algorithm)迭代器(Iterator)仿函数(Function object)适配器(Adaptor原创 2020-09-04 10:29:36 · 629 阅读 · 0 评论 -
c++编程之命名空间
命名空间的意义 为了避免变量或函数重命名的问题。在一个大型的工程中,需要多个工程师进行协作开发,有可能会出现全局变量或函数重名的现象,而如果每个人都定义了自己的命名空间,就可以解决这个问题,即使重名,只要分属不同的命名空间就不会引起问题。命名空间就是将多个变量和函数等包含在内,使其不会与命名空间外的任何变量和函数等发生重命名的冲突。命名空间举例实例中有两个命原创 2016-08-30 09:35:21 · 538 阅读 · 0 评论 -
c++编程之引用
引用:就是为某一变量设置一个别名,对引用的操作就是对变量进行直接操作引用的声明方法:类型标识符 &引用名=目标变量名; 1) &在此是起标识作用,与地址无关 2) 类型标识符与目标变量类型一致 3) 引用在声明时必须进行初始化,且不能再把该引用名作为其他变量的别名 4) 引用不是新定义了一个变量,它不是一种数据类型,不原创 2016-08-31 09:17:44 · 581 阅读 · 0 评论 -
c语言常见基础
关键字static的作用是什么?在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用。引用与指针的区别首先,引用不可以为空。前面也说过了引用是对象的别名,引用为空——对象都不存在,怎么可能有别名!故定义一个引用的时候,必须初始化其次,引原创 2020-12-04 14:35:16 · 247 阅读 · 0 评论 -
c语言——http编程
HTTP协议简介超文本传输协议是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是一个客户端终端(用户)和服务器端(网站)请求和应答的标准(一般基于TCP)。客户端发起一个HTTP请求到服务器上指定端口(默认端口为80),这个客户端被称为用户代理程序(user agent)。应答服务器被称为源服务器(origin server)。在用户代理和源服务器中间可能存在多个“中间层”,比如代理服务器、网关或者隧道(tunnel)HTTP可以在任何互联网协议上,或其他网络上实现。HTTP假定其下层原创 2020-08-06 15:36:55 · 8818 阅读 · 0 评论 -
c语言——socket编程
socket编程socket函数/*创建一个socket*/int socket(int family,int type,int protocol)family: 指定使用的协议簇:AF_INET(IPv4) AF_INET6(IPv6) AF_LOCAL(UNIX协议) AF_ROUTE(路由套接字) AF_KEY(秘钥套接字)type:指定使用的套接字的类型:SOCK_STREAM(字节流套接字) SOCK_DGRAMprotocol:如果套接字类型不是原始套接字,那么这个参数就为0bi原创 2020-08-04 17:01:42 · 348 阅读 · 0 评论 -
c语言——进程间通信
进程间通信信号管道消息队列共享内存socket实现信号参考文章: Linux信号(signal) 机制分析信号实现demo#include <stdio.h>#include <stdlib.h>#include <signal.h>void handler(int arg){ printf("hello world\n"); //kill(getpid(),9); //9表示 SIGKILL 杀死信号}/* SIG原创 2020-08-04 13:30:52 · 2814 阅读 · 0 评论 -
c语言——线程及线程间同步互斥
线程操作线程(thread)就是运行在进程上下文中的逻辑流。每个线程都有它自己的线程上下文(thread contxt),包括唯一的整数线程ID(Thread ID,TID)、栈、栈指针、程序计数器、通用目的的寄存器和条件码。所有的运行在一个进程里的线程共享该进程的整个虚拟地址空间。创建线程pthread_createtypedef void *(func)(void *); //return NULL;int pthread_create(pthread_t *tid, pthread_a原创 2020-08-04 08:46:54 · 1599 阅读 · 0 评论 -
c语言——进程控制
进程ID pid_t getpid(); //进程ID pid_t getppid(); //父进程ID pid_t getuid(); //实际用户ID pid_t geteuid(); //有效用户ID pid_t getgid(); //实际组ID pid_t getegid(); //有效组ID...原创 2018-07-11 16:12:48 · 507 阅读 · 0 评论 -
c语言——进程环境初解
进程 狭义定义:进程是正在运行的程序的实例 广义定义:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。进程的概念主要有两点: 第一,进程是一个实体。每个进程都有它自己的地址空间,一般包括文本区(text region)、数据区(data region)和堆栈(stack reg...原创 2018-07-10 17:08:42 · 299 阅读 · 0 评论 -
c语言——编程规范及注意事项
C语言01编写c语言的目的:根本————代码正确、可执行提升————代码可读性高(易读、易懂、注释明确、符合规范)、高效完美————健壮、可移植第一步的根本自然不必多说;代码写完之后,在测试的时候难免要修改,而且大项目的开发一般需要多人协作,因此除了个人要保证自己代码可以被他人看懂之外,还要保证自己代码规范可以与他人完美组合,没有冲突,这就需要有统一的规范——一般把一些默认的规原创 2015-08-04 16:12:57 · 981 阅读 · 0 评论 -
c语言——编译与链接
C语言02——编译、链接分析hello,world的分析——编译、链接的过程(cc编译指令)全部的操作在linux指令行下都可以实现~~~文件:hello.c#include#ifndef NUM //宏定义,就是NUM代表1#define NUM 1 #endif#ifdef NUM原创 2015-08-04 16:27:42 · 592 阅读 · 0 评论 -
c语言——带缓冲的文件 I/O操作
open操作FILE *fopen(const char *path, const char *mode); //作用:打开一个文件流,打开失败则返回NULLFILE *freopen(const char *path, const char *mode, FILE *stream); //将一个流进行重定向FILE *fdopen(int fd,const char *mode); /...原创 2018-06-20 09:32:40 · 433 阅读 · 0 评论 -
创建内存流:fmemopen()函数详解
创建内存流的3个函数如下:#include <stdio.h>FILE* fmemopen(void*buf, size_t size, const char* mode);FILE* open_memstream(char**ptr, size_t* sizeloc);#include &l...转载 2018-06-21 14:07:13 · 2620 阅读 · 0 评论 -
c语言——目录操作
access、truncate、link 、dir操作accessint access(const char *filenpath, int mode);作用: 判断是否对文件有操作权限 在头文件unistd.h中的预定义如下:#define R_OK 4 只判断是否有读权限#define W_OK 2 只判断是否有写权限#define X_OK 1 判断是否有执行权限...原创 2018-06-12 17:44:06 · 566 阅读 · 0 评论 -
unix c编程:不带缓冲的文件 I/O(文件描述符)
lienhua342014-08-27内核使用三种数据结构表示打开的文件,分别是文件描述符表、文件表和 V 节点表。(1) 每个进程在进程表中都有一个记录项,记录项中包含有一张打开文件描述符表,每个描述符占用一项。与每个文件描述符相关联的是: (a) 文件描述符标志。 (b) 指向一个文件表项的指针。(2) 内核为所有打开文件维持一张文件表。每个文件表项包含:转载 2017-12-18 15:37:00 · 381 阅读 · 0 评论 -
c语言——出错处理errno
#include void perror(const char *msg);1. errno变量 文件 中定义了符号 errno 以及可以赋予它的各种常量,这些常量都是以字符 E 开头。例如,若 errno 等于常量 EACCES,表示产生了权限问题(例如,没有打开所要求文件的足够权限)。errno特点:1、当出错的时候,errno会自动被赋值。一个int数据2、原创 2017-12-13 18:04:57 · 1743 阅读 · 0 评论 -
c语言——不带缓冲的文件 I/O操作
[cpp] view plain copyprint?1 文件描述符文件描述符是一个非负整数。当打开一个现有文件或创建一个新文件时,内核向进程返回一个文件描述符。将其作为参数传送给 read 或 write等操作。UNIX 系统 shell 使用文件描述符 0 与进程的标准输入相关联,文件描述符 1 与进程的标准输出相关联,文件描述符 2 与进程的标准出原创 2017-12-19 17:49:59 · 803 阅读 · 0 评论