
c基础到高级
文章平均质量分 72
c基础到高级
揽揽
这个作者很懒,什么都没留下…
展开
-
QT: QSettings读配置文件与c读配置文件
#include <QSettings >//创建配置文件 QSettings iniFile("./test.ini", QSettings::IniFormat); //写入数据 iniFile.setValue("/setting/value1", 1); iniFile.setValue("/setting/value2", 2); iniFile.setValue("/log/value3", 3); //读取数据 QSt原创 2020-12-21 14:53:32 · 140 阅读 · 0 评论 -
思维导图 —— C语言进阶:重点、难点、疑点解析
原创 2020-11-26 14:39:51 · 388 阅读 · 0 评论 -
系统调用文件操作以及C基于流的文件操作 所涉及的函数解析
Linux文件类型的种类?普通文件、目录文件、设备文件、管道文件、套接字和链接文件等等常见系统调用文件操作?open(),creat(),close(),read(),write(),lseek(),fcntl(),access()等常见基于流的文件操作?fopen(),fclose(),fread(),fwrite(),fseek() 等在处理设备、管道、网络套接字和其他特殊类型的文件的时候,必须使用系统调用I/0方法#include <sys/types.h>#includ原创 2020-09-24 15:02:56 · 129 阅读 · 0 评论 -
网络编程所涉及的函数解析
I/O模型有哪些?阻塞式I/O、非阻塞式I/O、I/O复用、信号驱动I/O、异步I/OUDP与TCP应用的区别?UDP是无连接的、不可靠的数据报协议TCP是面向连接的,提供可靠的字节流typedef unsigned short sa_family_t;//通用地址族#include <sys/socket.h>struct sockaddr{sa_family_t sa_family; /* 地址族 /char sa_data[14]; / 地址值,原创 2020-09-24 14:26:43 · 161 阅读 · 0 评论 -
C与C++的存储区
c++存储区全局变量与静态变量区、常量区、局部变量区(栈)、动态存储区(堆)、自由存储区1、全局变量与静态变量区 —》存放全局变量、静态变量,程序运行结束后释放2、常量区(文本区) —》存放常量3、局部变量区(栈) —》存放局部变量、函数参数。由编译器控制,自动分配和释放4、动态存储区(堆) —》malloc/free在堆存储区上申请和释放内存,由人控制5、自由存储区 —》new/delete/delete [] 在自由存储区(是一种概念抽象,具体取决于底层实现)上申请和释放内存,由人控制原创 2020-09-22 22:33:58 · 102 阅读 · 0 评论 -
C -- string.h
c–string.h标准库:字符串查找void* memchr(const char* str,int c,size_t n); //(没有memrchr)在str的前n个字节中 搜索第一次出现c 的位置(c为无符号字符)char* strchr(const char* str, int c); //搜素 在str中第一次出现c的位置(c为无符号字符)char* strrchr(const char* str, int c); //搜素 在str中最后一次出现c的位置(c为无符号字符)ch原创 2020-09-10 18:52:33 · 256 阅读 · 0 评论 -
指针基础1
extern const char str5[10];int main (){ const char str1[10] = ""; char str3[10]; const char str4[10] = ""; //如果不是外部的则必须初始化 //str5 = ""; //error const char str5[10] = ""; //外部的也得在这里做申明定义,否则找不到str5 strcpy((char*)str5,"fldk"); char* str6 = new原创 2020-09-10 15:31:59 · 89 阅读 · 0 评论 -
将树转换成数组
#include <stdio.h>#include <stdlib.h>#include <memory.h>struct treenode{ int data; struct treenode *left,*right; int arrayorder; //转换为数组之后该元素为数组的下标};struct treeArray{ int data; int lchild,rchild;};struct treenode* create.原创 2020-09-03 16:18:22 · 1358 阅读 · 0 评论 -
只有next的单向链表简单创建、增删改查以及不需中介拼接两个链表
#include <stdio.h>#include <stdlib.h>#include <memory.h> //在vc++ 里可以直接用#include <memory>//在linux下#include <stdlib.h> #include <memory.h>两个一起用typedef struct a{ int i; int j; char c; struct a* pNext;}A;A* getM原创 2020-09-03 11:48:25 · 137 阅读 · 0 评论 -
将指针的地址作为函数参数
void func(unsigned char** buf){ std::cout << "&buf: " << &buf << std::endl; std::cout << "buf: " << buf << std::endl; std::cout << "*buf : " << *buf << std::endl; std::cout << "**buf:原创 2020-08-31 11:27:32 · 486 阅读 · 0 评论 -
已知一串地址,访问该地址的值
int main() { const char* zb = "113.057606,22.509513"; const char** p = &zb; unsigned char* p1 = (unsigned char*)&zb; char* pAdd = (char*)0x0032fdd4; printf("%s\n",&zb); printf("%s\n",zb); char** pp = (char**)p1; printf("%原创 2020-08-28 18:43:44 · 184 阅读 · 0 评论 -
合并两个map,将map2拼到map1结尾
#include <iostream>#include <map>int main() { std::map<int,int> map1; map1[0] = 1; map1[2] = 3; std::map<int,int> map2; map2[4] = 5; map2[6] = 7; //这种方式遇到相同的key时保留k1的值 //map2的值不会被清掉 map1.insert(map2.begin(),map2原创 2020-08-27 16:35:49 · 531 阅读 · 0 评论 -
左移、右移 移位运算符
#include <stdio.h>int main(){ int i,ret; i = 100; ret = i << 1; //100*2 = 200 为什么乘的是2,因为二进制转为十进制就是每位数乘以2^n,所以 100 * (2^1) printf("%d\n",ret); ret = i >> 1; //100/2 = 50 printf("%d\n",ret); ret = i << 2; //100*4原创 2020-08-04 11:17:47 · 274 阅读 · 0 评论 -
splice截取list中指定数量的值
int main(){ list<int> mylist1, mylist2; list<int>::iterator it; // set some initial values: for (int i=1; i<=4; i++) mylist1.push_back(i); // mylist1: 1 2 3 4 it = mylist1.begin(); advance(it,3); mylist2.splice(mylist2.end(原创 2020-07-27 18:41:42 · 429 阅读 · 0 评论 -
GetTickCount()
C/C++头文件:winbase.hwindows程序设计中可以使用头文件windows.hunsigned long tick = GetTickCount();原创 2020-07-08 11:01:18 · 442 阅读 · 0 评论 -
linux/windows/QT下文件操作FILE、iofstream
c语言文件的读取和写入:文件打开类型r 打开一个已有的文件,允许读取w 打开一个文本文件,允许写入,如果文件不存在则创建。如果文件存在,写入内容将覆盖原有内容a 打开一个文本文件,以追加模式写入文件,如果文件不存在,则创建新文件。r+ 打开一个文本文件,允许读写文件w+ 打开一个文本文件,允许读写文件,如果文件不存在,则创建。如果文件存在,先清空文件内容,再写入a+ 打开一个文本文件,允许读写。文件不存在,则创建。如果文件存在,读取从头读取,写入以追加模式写入ubuntu下c语言写文件:原创 2020-06-16 16:10:58 · 798 阅读 · 0 评论 -
windows下查询端口对应的服务名
查询端口对应的PIDnetstat -aon|findstr "8090"查询PID对应的服务tasklist|findstr "6860"查看IP对应的机器名nbtstat -A 172.18.29.75服务器上被占用的所有端口号netstat -ano原创 2020-06-16 10:41:01 · 2917 阅读 · 0 评论 -
二进制、八进制、十进制、十六进制之间相互转换
二进制(<2)、八进制(<8)、十进制(<10)、十六进制(<16)之间相互转换二进制&十进制二 进制转为十进制:十进制转为二进制二进制&八进制八进制转二进制:12二进制转八进制: 001 010二进制&十六进制二进制转十六进制 & 十六进制转二进制十进制&八进制八进制转十进制:十进制转八进制:十六进制&十进制十六进制转十进制:十进制转十六进制:同 八进制转十六进制,只是把8改成16..原创 2020-06-11 16:46:45 · 388 阅读 · 0 评论 -
指针、数组指针、指针数组指向二维数组,指针加1或减1会输出什么?
int main(int argc, char* argv[]){ char c[][2] = {{'a','b'},{'c','d'},{'e','f'}}; printf("==================指针,指向数组=========================\n"); char* q = NULL; q = c[0]; //指向数组的初始地址 q = &c[0][0]; printf("%c\n",q[5]); //输出f q = q + 1; //原创 2020-05-28 18:09:27 · 889 阅读 · 0 评论 -
指针、数组指针、指针数组指向一维数组,指针加1或减1会输出什么?
#include <stdio.h>int main(int argc,char* argv[]){ char c[] = {'a','b','c'}; //==================指针,指向数组========================= char* q = NULL; q = c; //指向数组的初始地址 q = q + 1; //指向数组的下一个值 printf("%c\n",q[0]); //输出b //=============原创 2020-05-28 16:53:52 · 1066 阅读 · 1 评论 -
嵌入式系统学习
学习笔记嵌入式系统即嵌入式计算机系统。它是不以计算机面目出现的“计算机”,这个计算机系统隐含在各类具体的产品之中,这些产品中,计算机程序起到了重要作用。包含硬件 软件 机械装置分类按应用范围分为电子系统智能化类、计算机应用延伸类特点1.不以计算机面目出现2.需要专用工具和方法3.使用MCU设计系统4.涉及各种软硬件知识学习困惑:1.选微处理器还是应用处理器作为入门芯片?选择微控制器,且从不操作系统的学起2.开始学习时,是无操作系统NOS、实时操作系统RTOS、还是一原创 2020-05-11 11:24:10 · 230 阅读 · 0 评论 -
c核心概念之位域
位域在存储信息的时候,我们可能并不需要占用一个完整的字节,而需占一个或几个二进制位。为了节省存储空间,c语言提供了位域这种数据结构。位域:就是把存储空间中的二进制位划分为几个不同的区域,并说明每个区域的位数,每个域有一个域名,允许在程序中按域名进行操作。定义:struct 位域结构名{ 类型说明符 位域名:位域长度; ....... 类型说明符 位域名:位域长度;};位域变...原创 2020-05-08 11:26:35 · 233 阅读 · 0 评论 -
c核心概念之枚举
枚举将具有相同属性的一类数据一一列举出来。定义:enum 枚举类型名{ 标识符1[=整形常数], ...... 标识符n[=整形常数],};枚举类型是有序类型。如果没有为枚举常量指定值,其值默认从0开始,向后依次加1定义枚举变量的方法与结构体和共用体类似注意:在同一个作用域内不能出现重名的枚举常量名。include<stdio.h>enum nu1{a,b,c,d,}...原创 2020-05-08 12:13:35 · 99 阅读 · 0 评论 -
c核心概念之结构体、共用体
结构体由一系列具有相同类型或不同类型的数据构成的数据集合。定义形式: struct 结构体名 { 成员类型 成员名;(可以是结构体或共用体) ...... 成员类型 成员名; }; **定义结构体变量** struct 结构体名 { 成员类型 成员名; ...... 成员类型 成员名; }变量名1,变量名2; **或者** struct {...原创 2020-05-08 12:13:59 · 140 阅读 · 0 评论 -
c核心概念之指针函数和函数指针
指针函数返回值类型是指针。返回值类型* 函数名(参数表);函数指针是指针,指向函数的指针,其指向的是函数的入口地址。返回值类型 (*指针变量名)(形参列表)返回值类型与所指向的函数的返回值类型一样,形参列表也一样。指向格式:函数指针名=函数名//在输入字符串中查找指定的字符,如果查找成功,则打印出所查找字符后面的字符串,如果查找失败,给出提示信息#include<st...原创 2020-05-08 12:12:46 · 89 阅读 · 0 评论 -
c核心概念之指针数组和数组指针
指针数组定义:类型名 *数组名[数组长度];例如:int* p[8];数组p的元素是指向整形数据的指针,存放的是地址单元。数组指针定义:类型名 (*指针)[数组长度];例如:int (*p)[8];该指针指向的是有8个整型元素的数组,p即为指向数组首元素地址的指针,本质为指针指针数组和数组指针如何访问二维数组:#include<stdio.h>void main...原创 2020-05-08 12:14:22 · 101 阅读 · 0 评论 -
c核心概念之指针变量
//指针的使用#include<stdio.h>int main(){ int a = 2; int *pa; char b = 't'; char *pb; pa = &a; pb = &b; printf("整型指针pa占用内存大小为:%d字节\n",sizeof(pa)); //指针占用内存大小都是4字节 printf("字符型型指针pb占用...原创 2020-05-08 12:14:45 · 107 阅读 · 0 评论 -
c核心概念之全局变量和局部变量、生存期和作用域、内部函数和外部函数
全局变量也称外部变量,在函数体外定义。全局变量分为外部全局变量和静态全局变量。区别:使用static存储类别的全局变量只能在被定义的源程序文件中使用,而使用extern存储类别的全局变量不仅可以在被定义的源程序文件中使用,还可以被其他源文件中的函数引用。局部变量相对于全局变量而言的,即在函数中定义的变量称为局部变量。形参也是一种局部变量。生存期 所谓的生存期,是指变量占用内存或者寄...原创 2020-05-08 12:15:44 · 1222 阅读 · 0 评论 -
c核心概念之堆栈
1.堆栈栈stack:是硬件,主要作用表现为一种数据结构,是只能在一端插入和删除数据的特殊线性表。 允许**插入和删除**的一端称为**栈顶**,另一端为**栈底**。 按照**后进先出**的原则存储数据。 栈中元素个数为零时称为空栈。插入称为进栈push。删除为出栈pop。 栈也被称为先进后出表。 在计算机系统中,栈是一个动态内存区域。 栈保存了一个函数调用时所需要的维...原创 2020-05-08 12:15:12 · 175 阅读 · 0 评论