
C语言
文章平均质量分 95
透彻分析C语言
一枚快乐的野指针
这个作者很懒,什么都没留下…
展开
-
深度解析Linux进程管理
Linux 进程管理0 摘要1 进程创建1.1 fork 函数1.2 写时拷贝1.3 fork 常规用法1.4 fork 调用失败的原因1.5 总结2 进程终止2.1 进程退出情况2.1 进程常见退出方法3 进程等待3.1 进程等待的必要性3.2 进程等待的方法3.2.1 wait3.2.1 waitpid4 进程程序替换二级目录三级目录0 摘要上一次的文章https://blog.youkuaiyun.com/CZHLNN/article/details/114534969?spm=1001.2014.3001原创 2021-03-16 19:33:12 · 1618 阅读 · 5 评论 -
c语言学习小结_04
一、之前在上一篇里,用递归实现求第n个斐波那契数字的时候,实际上效率是很低的。因为进行了很多重复的计算,如下如所示:在求第6个数字的时候,进行了很多重复的计算,int count = 0;//用递归求第n个斐波那契数字int Fib(int n){ if (1 == n || 2 == n){ return 1; } if (n == 3){ count++; } return Fib(n - 1) + Fib(n - 2);}int main(){ int ret= Fi原创 2020-10-25 11:51:21 · 408 阅读 · 0 评论 -
C语言学习小结_3(递归最强解析)
1、写一个函数实现有序数组的二分查找(前提是数组为有序而且要已知是升序还是降序)```c#include<stdio.h>#include<windows.h>int BinSearch(int arr[], int length, int targetNum){ int left = 0; int right = length - 1; int mid = 0; while (left <= right){ mid = left + (right - le原创 2020-10-19 20:59:25 · 330 阅读 · 0 评论 -
c语言小总结_02
1、在用for循环的时候,尽量用半开半闭区间,->for(int i = 0;i<10;i++){ 方法体}当用数组去写算法的时候,就会有所体会。2、逗号表达式:依次向右执行,而且是从左向右依次全部被执行,最后的结果以最后的表达式为准。3、在c语言中,出现出样的条件判断:```cint i = 0;```if(i = 5){ xxxx}等价于:if(i);在C语言中0表示假,非0表示真。这种情况,()中的条件总是是成立的,while(i = 5){}这原创 2020-10-17 16:57:02 · 167 阅读 · 0 评论 -
C语言学习小结_01
1、c语言中的数据类型其实就分为两类:整型和浮点型 整型:char,short,int,long,long long 浮点型:float,double2、sizeof是关键字,不是函数,c语言中没有字符串类型,但有字符串内容3、面向过程的思想:走一步,看一步,摸着石头过河,需要什么再去写什么。4、关于static 关键字的几点说明:在c语言中static是用来修饰变量和函数的。1)修饰局部变量-静态局部变量:改变了变量的生命周期,让静态局部变量出了作用域依然存在,到程序结束,生命周期才结原创 2020-10-09 23:17:40 · 252 阅读 · 0 评论 -
Flag
首先我想自我介绍一下,我是长安大学信息工程学院智能交通与信息系统工程专业的研究生,我学习编程算法和深度学习有很长一段时间了,幸运的是我对此很感兴趣,并渴望未来以此作为的工作,一年以来我每天在编程上的时间平均应该有2个小时,但是从今天起,我要每天5个小时以上在这上面,来全面提升自己,毕业后我想去北京,我非常喜欢字节跳动的企业文化,并渴望明年能够成为字节跳动的一员。...原创 2020-09-26 10:20:45 · 200 阅读 · 0 评论 -
使用接口作为方法的参数和返回值
原创 2020-10-17 17:01:32 · 222 阅读 · 0 评论 -
C语言学习小结_升级版通讯录
实现一个通讯录通讯录可以用来存储有一定容量人的信息,当存到最大容量时候,通讯录自动扩容,并且每次程序关闭时候要将程序中的通讯录持久化到硬盘或者数据库中。提供方法:1、添加联系人信息2、删除指定联系人信息3、显示所有联系人信息4、修改指定联系人信息5、显示所有联系人信息6、清空所有联系人0、退出通讯录程序涉及到的知识点多文件、结构体中的应用、柔性数组的应用、static关键字使用、动态内存管理、利用文件指针持久化和读取数据等。头文件如下:#include "contact.h"i原创 2020-11-30 15:46:03 · 243 阅读 · 0 评论 -
C语言学习小结_10文件操作
本次总结的几个知识点1、为什么使用文件2、什么是文件3、文件的打开和关闭4、文件的顺序读写5、文件的随机读写6、文件的分类7、文件读取结束的判定8、文件缓冲区1、为什么使用文件?我们用c写一个通讯录的小应用的时候,当通讯录程序退出的时候,其中的数据就不存在了,等下次运行程序的时候又要重新录入,这样使用是不是很难受,那么能不能数据放到可以永久存储的地方呢?这就涉及到了数据持久化的问题,比如把数据存储得到磁盘或者数据库等。使用文件我们可以将数据直接放到电脑的硬盘上,做到了数据的持久化。原创 2020-11-28 15:10:44 · 305 阅读 · 0 评论 -
C语言学习小结_09_结构体的内存对齐
一、为什么存在内存对齐下面有代码#include<stdio.h>#include<windows.h>struct s1{ char c; int i; char c1;};struct s2{ char c; char c1; int i;};int main(){ printf("%d\n", sizeof(struct s1)); printf("%d\n", sizeof(struct s2)); system("pause");原创 2020-11-23 20:30:55 · 186 阅读 · 0 评论 -
C语言学习小结_08_库函数模拟实现
一、strlen(字符串有效长度)的模拟实现:有三种方式:1、计算器:size_t my_strlen_1(const char* str){ int count = 0; while (*str) { count++; str++; } return count;}2、递归实现//递归size_t my_strlen_2(const char * str){ if (*str == '\0'){ return 0; } else{ return 1 +原创 2020-11-21 13:12:51 · 210 阅读 · 0 评论 -
C语言学习小结_07
一、指针辨析我的电脑为小端机器,内存寻址的基本单位是字节,指针解引用的时候,扫过的字节数由指针指向目标的变量类型决定,比如int*:扫过4个字节(每个字节8个比特位),char*:扫过一个字节,char**:扫过4个字节(32位平台下),下面以一个很能说明问题的题目来表明指针的剖析。#include<stdio.h>#include<windows.h>int main(){ /* 最强指针辨析,不接收反驳 */ char* c[] = { "ENTER",原创 2020-11-17 10:44:19 · 165 阅读 · 0 评论 -
C语言学习小结_06
一、回调函数的使用和理解#include<stdio.h>#include<windows.h>#include<assert.h>//模拟实现qsort(用冒泡排序的思想)//涉及回调函数://回调函数就是通过函数指针调用的函数。如果把函数的指针(地址)作为参数传递给另一个函数//当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。一般回调函数需要程序员//自己实现。比如qsort就是典型的回调函数的应用/* arr:待排序序列原创 2020-11-16 17:06:32 · 194 阅读 · 0 评论 -
c语言学习小结_05_扫雷小游戏和三子棋小游戏
一、 main.c是小游戏的主要的核心逻辑代码,内部的实现细节在saolei.c中。使用多文件结构实现。//main.c#include "saolei.h"int main(){ int quit = 0; int select = 0; while (!quit){ Menu(); scanf("%d", &select); switch (select){ case 1: Game(); printf("要不要再来一把!\n"); break原创 2020-11-02 22:11:43 · 210 阅读 · 0 评论