C/C++
MrPeng1991
这个作者很懒,什么都没留下…
展开
-
C++ iovec结构体
iovec是一个结构体,用于描述一个数据缓冲区。它通常与readv和writev系统调用一起使用,用于在一次系统调用中读取或写入多个缓冲区。下面demo演示读取多个缓冲区的数据 fd是文件描述符,iov是iovec结构体数组,iovcnt是数组元素个数。如何使用iovec结构体和readv/writev系统调用。原创 2024-04-20 20:05:40 · 327 阅读 · 1 评论 -
零长数组,what&why
数组名在作为函数参数传递时,确实传递的是一个地址,但数组名绝不是指针,两者不是同一个东西。数组名用来表征一块连续内存存储空间的地址,是个常量,表示一个地址,而指针是一个变量,编译器要给它单独再分配一个内存空间,用来存放它指向的变量的地址。问什么不用指针代替零长数组?原创 2024-04-04 19:56:22 · 418 阅读 · 0 评论 -
构造函数总结
移动构造函数 未完待续。原创 2024-03-10 20:45:09 · 374 阅读 · 0 评论 -
c++知识点
自行给指针动态分配空间否则对象回收的时候,会调用析构函数,回收两次,出现错误。原创 2024-03-10 20:49:53 · 882 阅读 · 0 评论 -
结构体函数&函数指针
#include<stdio.h>#include<stdlib.h>// 结构体函数struct str_func{ int a; int b; int (*add)(int a,int b);//函数指针,本质是一个指针变量,指向函数地址, int(*sub) (int a, int b); int (*compare)(int a, int b);};// 函数指针int add(int a,int b){ re原创 2021-05-07 18:39:48 · 3018 阅读 · 1 评论 -
C/C++ 预处理
c语言对源程序的处理的四个步骤:预处理,编译,汇编。链接原创 2021-02-18 20:00:35 · 214 阅读 · 0 评论 -
strcpy、sprintf、memcpy的区别
拷贝函数的区别char* strcpy(char *dest, const char *src):int sprintf(char* str ,const )https://blog.csdn.net/lickylin/article/details/7856779原创 2020-11-24 15:50:19 · 184 阅读 · 0 评论 -
c语言中char* char[] 区别
char *s1 = “hello”;char s2[] = “hello”;char *s1 ,指针指向一块内存区域,他指向的内存区域可以随时改变,而且指针指向常量字符串时,内容不可以被修改,否则 运行时会报错。char s2[] 数组对应一块内存区域,地址和容量在生命周期里不会改变,只有数组的内容可以改变。...原创 2020-11-24 15:37:12 · 445 阅读 · 0 评论 -
结构体初始化
#include <stdio.h>#include <string.h>struct stu{ char name[50]; int age;};//先定义类型,再定义变量(常用)struct stu s1 = { "mike", 18 };//定义类型同时定义变量struct stu2{ char name[50]; int age;}s2 = { "lily", 22 };struct{ char name[50]; int age;}s3原创 2020-11-24 14:17:49 · 110 阅读 · 0 评论 -
链表
简介链表是以节点的方式来存储数据,是链式存储每个节点包含数据域、指针域:指向下一个节点的地址。链表在内存空间并不是连续的,每个节点通过指针域来指向下一个节点的地址。链表在内存的空间并不是连续的,每个节点通过指针域来指向下一个及诶单,而数组在内存中一个连续的区域。因为链表的这个特点,只要还有内存可以分配,那么链表就可以无限延长,而数组必须一开始指定长度且不能动态的修改长度。常见操作...原创 2019-12-30 12:16:16 · 1125 阅读 · 0 评论 -
C语言学习之内存布局
c代码经过预处理,编译,汇编,链接4步后生成一个可执行程序运行程序运行前,也就是程序没有加载到内存前,可以分为三段信息。代码区存放cpu执行的机器指令,代码区可共享(另外的可执行程序调用他),目的是对于频繁被执行的程序,只需要在内存中有一份代码即可。代码区只读,目的是防止程序意外地修改它的指令。代码区还规划了局部变量的相关信息。全局初始化数据区/静态数据区 data段包换程序中明确被...原创 2020-04-24 18:36:34 · 237 阅读 · 0 评论 -
C知识点——提高
内存分区指针强化二级指针位运算多维数组结构体文件链表函数指针和递归函数预处理动态库原创 2019-09-07 16:48:17 · 224 阅读 · 0 评论 -
c++ 虚函数
https://www.cnblogs.com/weiyouqing/p/7544988.html转载 2019-08-15 17:38:08 · 106 阅读 · 0 评论 -
c++ 中:: 作用
一、::作用域限定符,在类上定义函数时,不需要在函数名字的前面加上类名,类体外实现函数定义的时候,必须加上类名和作用域限定符 Student:: Display();静态成员 既可以通过对象名引用,也可以通过类名加::静态成员函数,同理,可以通过对象名引用,可以通过类名+::引用在类中定义的typedefx新类型。虚函数,有的时候需要在子类的重写函数中调用父类的函数,二、-&...原创 2019-08-24 15:14:39 · 3332 阅读 · 0 评论 -
c语言内存管理
局部变量 auto自动变量,函数内有效没有赋初值,内容为随机静态(static)局部变量函数内有效static局部变量生命周期和程序运行周期一样,只初始化一次,可以赋值多次如未赋值,系统自动赋值,数值型为0;字符为空字符。全局变量函数外定义,若其他文件中的函数调用此变量,须用extern声明全局变量的声明周期和程序运行周期一样不同文件的全局变量不可重名。...原创 2019-06-26 00:58:57 · 443 阅读 · 0 评论 -
指针
int a =0;int *p;p=&a;printf("%d\n",*p) //打印0char b=100;char *p1=&b;printf("%d\n",*p) //打印100//通过指针修改变量值*p=100;//a 为100原创 2019-06-06 20:46:39 · 159 阅读 · 0 评论 -
c编译过程
编译过程:.c文件- 展开头文件- 删除注释- 条件编译- 宏定义的展开- .i 文件.i 文件- 检查语法- 高级语言转成汇编语言- 生成.s 文件.s文件 -- 汇编语言转化成机器语言- 生成.o文件.o文件- 链接不同操作系统下的库文件- 生成可执行文件执行过程...原创 2019-05-21 00:48:01 · 160 阅读 · 0 评论 -
c++入门一
定义常量的两种方式使用#define预处理器使用const关键字存储类auto 根据初始化表达式自动推断该变量的类型。声明函数式,函数返回值的占位符register 定义存储在寄存器中而不是RAM中的局部变量。这意味者变量的最大尺寸等于寄存器的大小。且不能对他应用一元的’&'运算符,因为他没有内存位置。static 指示编译器在程序的生命周期内保持局部变量的存在,而不需要...原创 2019-03-18 21:36:30 · 132 阅读 · 0 评论