C/C++
文章平均质量分 54
c/c++笔记
伽男
学无止境
展开
-
STL源码剖析笔记
c++源码剖析翻译 2022-09-14 16:34:44 · 524 阅读 · 0 评论 -
C++11新特性(一)
定义迭代器 i 的时候,类型书写比较冗长,容易出错。然而有了 auto 类型推导,我们大可不必这样,只写一个 auto 即可。原创 2022-09-03 15:46:59 · 349 阅读 · 0 评论 -
C++收缩转换
VS2019提示报错 表示unsigned_int64转换到_int64,需收缩转换,这需在long long前加unsigned类型转换 变量类型和初始化的值不一致要么进行强制类型转换 或者初始化的值为一致这只需将bool{100}改为bool(100)...原创 2022-03-17 21:54:13 · 4058 阅读 · 0 评论 -
C程序编译过程
一步编译:gcc -o hello.exe hello.chello.c是C语言源代码经过gcc -E hello.c -o hello.i生成hello.i文件1、预处理 宏定义展开 头文件展开 条件编译 去掉注释经过gcc -S hello.i -o hello.s2、编译 检查语法 将C语言转成汇编语言经过gcc -c hello.s -o hello.o3、汇编 将汇编语言转成机器语言(二进制码)经过gcc hello.o -o hello.exe4、链接 将C语言依赖库链接原创 2021-10-02 00:28:56 · 75 阅读 · 0 评论 -
++a a++汇编是如何执行的?
c = b - a++;00007FF7565018F0 mov eax,dword ptr [a] 00007FF7565018F3 mov ecx,dword ptr [b] 00007FF7565018F6 sub ecx,eax 00007FF7565018F8 mov eax,ecx 00007FF7565018FA mov dword ptr [c],eax 00007FF75650原创 2022-02-16 00:00:01 · 214 阅读 · 0 评论 -
C和指针(第十二章至第十三章的一部分)
链表(linked list)单链表:每个节点包含一个指向链表下一个节点的指针。链表最后一个节点的指针字段的值为NULL。typedef struct NODE { struct NODE *link; int value;} Node;单链表插入/***c*/原创 2021-09-17 00:35:36 · 78 阅读 · 0 评论 -
C与指针笔记(第十章至十一章)
struct COMPLEX { float f; int a[20]; long *lp; struct SIMPLE s; struct SIMPLE sa[10]; struct SIMPLE *sp;}一个结构的成员的名字可与其他结构的成员名字相同结构变量的成员通过点操作符(.)访问,左操作数是结构变量的名字,右操作数是需要访问成员的名字。结构成员的访问void func( struct COMPLEX *cp);(*cp).f//使用该表达式访问上式cp-原创 2021-08-31 20:37:10 · 73 阅读 · 0 评论 -
C陷阱与缺陷笔记
单引号引起的一个字符对应的是该字符在编译器采用的字符集中的序列值。双引号引起的字符串代表的是一个指向无名数组起始字符的指针,并且结尾是‘\0’。float *g(), (*h)();g是一个函数,该函数返回值得类型是指向浮点数的指针;h是一个指针,该指针所指向的函数的返回值类型为浮点型。赋值运算符的优先级要低于任何一个比较运算符注意else悬挂问题else始终与同一对括号内最近的未匹配的if结合。*(a+i)是数组a中下标为i的元素的引用,简记为a[i]。 *(*(a+i)+j)//原创 2021-08-26 20:59:29 · 59 阅读 · 0 评论 -
C和指针笔记(第八章至第九章)
声明一个数组时,编译器将根据声明所指定的元素数量为数组保留内存空间,然后创建数组名。数组的传值调用,传递给函数的是参数的一份拷贝(指向数组起始位置的指针的拷贝)自动变量位于运行时堆栈中,char message[] = "Hello";//初始化一个字符数组的元素char *message2 = "Hello";//字符串常量,这个指针变量被初始化为指向这个字符串常量的存储位置int vector[10], *vp = vector;//它为整型数组分配内存,并把vp声明为一个指向整型的指针,原创 2021-08-25 22:26:21 · 65 阅读 · 0 评论 -
C与指针笔记(第四章至第八章)
break和continue语句break 用于永久终止循环,在执行完break语句之后,执行流下一条执行的语句就是循环正常结束后应该执行的语句原创 2021-08-23 22:09:03 · 91 阅读 · 0 评论 -
c和指针笔记(第二至第三章)
交叉编译器:在一台机器运行,但它所产生的可执行代码运行于不同类型的机器。编译过程:三字母词序列用于在某些缺少一些必需字符的字符集实现原创 2021-08-19 23:14:09 · 70 阅读 · 0 评论 -
c和指针笔记第一章
快速上手通过一个例子,讲解c/***这个程序从标准输入中读取输入行并在标准输出中打印这些输入行。**每个输入行的后面一行是该行内容的一部分。****输入的第一行是一串列标号、串的最后以一个负数结尾。**这些列标号成对出现,说明需要打印的输入行的列的范围。**例如,0 3 10 12 -1表示第0列到第3列,第10列到第12列的内容将被打印。***/#include <stdio.h>#include <stdlib.h>#include <string原创 2021-08-19 00:49:38 · 66 阅读 · 0 评论 -
c专家编程笔记
c专家编程c语言的基本数据类型直接与底层硬件相对应Auto是在进入程序块时自动进行内存分配,是缺省的变量内存分配模式数组名可看成是指针对于宏预处理器使用,只应该适量使用,注意空格理解:const char **p指向的内容是const char *pchar **p指向的内容是char *p两者不一致,所以会报错。const 是一种限定符,表示这个符号不能被赋值,只读,不能防止程序的内部与外部改变这个值const 的最有用的作用是:限定函数的形参,const int * limitp原创 2021-08-02 23:36:39 · 176 阅读 · 0 评论 -
c语言疑问点
文章目录#include< >和#include" "有什么区别switch(c) 语句中 c 可以是 int, long, char, float, unsigned int 类型?const头文件中的 #ifndef/#define/#endif 干什么用全局变量和局部变量在内存中是否有区别?#include< >和#include" "有什么区别第一个是用来包含开发环境的库,第二个是用来包含.C/.CPP文件所在目录的头文件。switch© 语句中 c 可以是 int,原创 2021-07-21 18:52:47 · 144 阅读 · 0 评论 -
cana个人准备蓝桥杯算法
1.判断无穷 拓展欧几里得核心思想:考虑 a1x1+a2x2+…+an*xn=gcd(a1,a2,…an),只能凑出来gcd的倍数如果n个数的最大公约数不是1的话,比如说k,那么我们只能凑出k的整数倍,所以肯定有INF个数字不是K的倍数b[0]=1; //0个包子一定能够凑数来 for(i=0;i< n;i++) for(j=0;j+a[i]<=1000...原创 2020-04-19 16:40:43 · 139 阅读 · 0 评论 -
《C语言深度解剖》理解与查漏补缺
一.关键字:定义:创建一个对象,为这个对象分配一块内存并给它取一个名字,也就是变量名。声明:告诉编辑器,这个名字已匹配一块内存,其他地方不能用它来做变量。定义创建对象并为这个对象分配内存,声明没有分配内存。auto —— 默认缺省情况都是。register—— 请求编译器尽可能将变量存在cpu内部寄存器而不是通过内存寻址访问。寄存器快,不能用取址运算符“&”获得register变量的地址static —— 修饰的变量存在内存的静态区,静态局部变量只作用于变量定义的文件。从定义处到文件结原创 2020-07-26 13:21:08 · 138 阅读 · 0 评论