C语言
Advsance
我们的征途是星辰大海
展开
-
C中的malloc/calloc/realloc和free
1.1 mallocvoid* malloc (size_t size); 1)如果开辟成功,则返回一个指向开辟好空间的指针。2)如果开辟失败,则返回一个NULL指针,因此malloc的返回值一定要做检查。3)返回值的类型是 void* ,所以malloc函数并不知道开辟空间的类型,具体在使用的时候使用者自己来决定。4)如果参数 size 为0,malloc的行为是标准是未定义的,取决...原创 2020-02-18 18:51:40 · 204 阅读 · 0 评论 -
线程创建以及线程控制
线程底层:在linux下PCB模拟实现进程,通俗的说就是一个大的PCB下有很多小的PCB,称为轻量级进程。在一个进程中有多个PCB,而这些所有的PCB共用同一份虚拟地址空间。而这些PCB共同基层构成一个PCB组,一个线程组就为一个进程。3.一个线程是程序执行的基本单位,进程是资源调度的基本单位。线程是CPU调用的基本单位。线程之间的资源共享 :独有:函数调用栈寄存器 (不是硬件...原创 2020-01-29 22:56:14 · 217 阅读 · 0 评论 -
关于数组的+1,指针的+1 ,-1等
指针功能很强大,有时候也有很多有意思的操作直接上代码吧 这段代码 看着还是很复杂的void test(){ int arr[5] = { 9,8,7,6,2 }; int *ptr = (int *)(&arr + 1); cout << *(int*)(&arr) << endl; cout << *(&arr) <...原创 2019-09-24 00:12:07 · 460 阅读 · 0 评论 -
vector的用法
vector 底层实现的方式为一个顺序表 容量按照vs每次1.5倍的增张,gcc为2倍实现不同那么增长方式就不同vector的构造方式 vector<int> ar1{ 1,2,3,4,5,6,7,8,9 }; vector<int> ar2(ar1.begin(), ar1.end()); vector<int> ar3(10, 1); vector...原创 2019-09-22 19:09:21 · 307 阅读 · 0 评论 -
数据结构堆的创建
堆定义: 一颗完全二叉树,堆中的元素存储到一维数组中,对于任意节点,如果该节点小于其左右孩子,称之为小堆,如果任意一节点值大于其孩子,则称为大堆。(上面最大就是大堆,上面最小就是小堆)堆的特征:1.堆的顶端一定为最大的,或者最小的2.如果根节点满足堆,那么他的左子树和右字数也满足堆得性质。(小堆如果不满足,则该节点可以和孩子节点较小的相替换)3.堆创建的时间复杂度,因为叶子节点比度为2的节...原创 2019-09-11 09:01:25 · 680 阅读 · 0 评论 -
C基础练习题
1.完成猜数字游戏。2.写代码可以在整型有序数组中查找想要的数字, 找到了返回下标,找不到返回-1.(折半查找)3.编写代码模拟三次密码输入的场景。 最多能输入三次密码,密码正确,提示“登录成功”,密码错误, 可以重新输入,最多输入三次。三次均错,则提示退出程序。4.编写一个程序,可以一直接收键盘字符, 如果是小写字符就输出对应的大写字符,&n...原创 2019-07-01 12:36:08 · 547 阅读 · 0 评论 -
C语言基础打,水仙花s,多项式求和习题
1.在屏幕上输出以下图案:/*/***/*****/*******/*********/***********/*************/***********/*********/*******/*****/***/*2.求出0~999之间的所有“水仙花数”并输出。“水仙花数”是指一个三位数,其各位数字的立方和确好等于该数本身,如;153=1+5+3?,则153是...原创 2019-06-30 00:40:17 · 363 阅读 · 0 评论 -
static ; extern; dregisrer的用法以及静态动态内存
1.自动变量在函数中如果不加static,再函数调用结束则该变量自动释放,系统对其分配动态的储存空间,比如一个函数调用多次,其中的变量如果没有加static关键字那么每次调用变量的地址可能都不相同。如果再符合语句中定义,也会在符合语句结束后释放。复合语句(循环,+=)2.静态局部变量static1)如果在一个函数中加入static关键字,那么该变量为静态局部变量,在函数调用完后变量的值不施放...原创 2019-07-03 12:36:30 · 246 阅读 · 0 评论 -
C++练习题
关于vector的使用1.定义排序子序列为一个数组中一段连续的子序列,并且这段子序列是非递增或者非递减排序的。牛牛有一 个长度为n的整数数组A,他现在有一个任务是把数组A分为若干段排序子序列,牛牛想知道他最少可以把这个数 组分为几段排序子序列.如样例所示,牛牛可以把数组A划分为[1,2,3]和[2,2,1]两个排序子序列,至少需要划分为2个排序子序列,所以输出 2 输入描述: 输入的第一行为一...原创 2019-07-08 12:32:18 · 4588 阅读 · 0 评论 -
C++练习题
1.组队竞赛(排序算法)牛牛举办了一次编程比赛,参加比赛的有3n个选手,每个选手都有一个水平值a_i.现在要将这些选手进行组队,一 共组成n个队伍,即每个队伍3人.牛牛发现队伍的水平值等于该队伍队员中第二高水平值。例如:一个队伍三个队员的水平值分别是3,3,3.那么队伍的水平值是3一个队伍三个队员的水平值分别是3,2,3.那么队伍的水平值是3一个队伍三个队员的水平值分别是1,5,2.那么...原创 2019-07-08 09:47:28 · 1237 阅读 · 0 评论