c语言

C语言学习(三)

我的梦境 提交于 2020-02-06 05:17:16
C语言学习(三) 本节大纲 数组 定义 标准定义方法 编程案例1 案例输出 程序的模块化设计 函数定义方法: 种类 编程案例2 案例输出 编程案例3 案例输出 编程练习 课外话:挫折是人生的常态,在我们遭遇疫情,不应一味放大痛苦让其充塞心灵。我们要学会调适心弦,坦然面对,全国人民团结一致,就一定会战胜疫情。祖国加油!武汉加油!!! 《你的答案》 ——转载自哔哩哔哩up主:养猪的小仙女丫头 本节大纲 数组 程序的模块化设计 数组 定义 所谓数组,是有序的元素序列。 [1] 若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。用于区分数组的各个元素的数字编号称为下标。数组是在程序设计中,为了处理方便, 把具有相同类型的若干元素按无序的形式组织起来的一种形式。 [1] 这些无序排列的同类数据元素的集合称为数组。 数组是用于储存多个相同类型数据的集合。 注:引用自百度百科 描述:由基础数据类型组成的相同类型数据的集合称为数组 本节我们回顾一下第一节基础数据类型 基本数据类型: 八大数据类型结构都可组成数组,在派生数据类型中的结构体、共用体,指针类型都可以组成数组(后续学习) 数组在内存空间的存储为连续性存储即一层数据挨着一层 举图示例: 内存的使用: 标准定义方法 方法一 :(定义未初始化) signed int

【c语言】——字符串

岁酱吖の 提交于 2020-02-06 05:05:17
一提到字符串,想必大家对此表示十分亲切且熟悉了吧,字符串在我们的日常生活中处处可见,因此在程序里面其也占着举足轻重的地位,下面就让我们来了解了解它吧~ 一、字符串的定义 1、含义 使用“ ”以‘\0‘结尾 的一串字符。字符串的结尾标识为‘\0‘,只有用“ ”包括起来的都是字符串。 2、使用案例 字符串的错误定义 char arr[5] = {'a','b','c','d','e'};//没有'\0' char crr[] = {'a','b','c','d','e'}; char drr[] = "ab\0cde"//打印出来ab,字符串中不能有'\0' 字符串的正确定义 char arr[5] = {'a','b','c','d'};//有'\0' char frr[5] = "abcd"; char err[] = "abcde"; char *hrr = "abcde"; 注意:后面两个的区别 二、字符串的有效长度 注意: strlen不包括’\0’,sizeof包括’\0’ 求其sizeof 和 strlen char str[100] = "abcde"; //100,5 char str2[] = "abcde";//6,5 char *str3 = "abcde";//4(指针的字节数都为4),5 char str4[100] = "abcdef\0gh";//100

C语言 NOTE31

岁酱吖の 提交于 2020-02-06 04:26:47
系统编程之管道 系统编程之信号 信号响应特点 1.同时响应时,实时信号存在优先级,数值越大的先响应,非实时信号随机响应 如何验证:使用sigprocmask将所有信号阻塞后,发送所有信号给该进程,然后解除阻塞就可以观察信号响应顺序。 2.信号存在先后响应,先响应的响应,后来的信号可以嵌套响应, 注意 :非实时信号仅能嵌套一次,实时信号可以嵌套多次,因为实时信号内核会保存多次的差异。 使用kill -l:查看信号编号 自定义信号处理方式函数带传参数和不带参数形式: 不带参数形式: signal ( 设置信号处理方式 ) 头文件 #include <signal.h> 定义函数 void ( * signal ( int signum , void ( * handler ) ( int ) ) ) ( int ) ; 函数说明 signal()会依参数 signum 指定的信号编号来设置该信号的处理函数. 当指定的信号到达时就会跳转到参数 handler 指定的函数执行. 如果参数 handler 不是函数指针, 则必须是下列两个常数之一: SIG_IGN 忽略参数 signum 指定的信号. SIG_DFL 将参数 signum 指定的信号重设为核心预设的信号处理方式. 关于信号的编号和说明, 请参考附录 D 返回值 返 回先前的信号处理函数指针, 如果有错误则返回 SIG_ERR

C语言fseek()函数和ftell()函数

时间秒杀一切 提交于 2020-02-06 04:25:35
C语言fseek()函数和ftell()函数 方便用的时候看, FILE * fp ; int ch ; long count = 0l , tell ; * * * 前移: * * * fseek ( fp , 0l , SEEK_END ) ; tell = ftell ( fp ) ; count = 1l ; //为了count成为-1 while ( count <= tell ) { fseel ( fp , - count , SEEK_END ) ; //从文件末尾向前移 ch = getc ( fp ) ; fprintf ( stdout , "%c" , ch ) ; count ++ ; } * * * 后移: * * * fseek ( fp , 0l , SEEK_END ) ; //定位到文件末尾,如果不写这个函数,下面的ftell()函数返回值为0; tell = ftell ( fp ) ; //从文件起始位置到文件末尾的字节数 printf ( "tell==%ld\n" , tell ) ; while ( count < tell ) { fseek ( fp , count , SEEK_SET ) ; //从文件的起始位置开始 ch = getc ( fp ) ; fprintf ( stdout , "%c" , ch ) ;

C语言经典例17-统计字符个数

自古美人都是妖i 提交于 2020-02-06 02:02:39
目录 1 题目 2 分析 3 实现 4 运行结果 1 题目 输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。 2 分析 题目中未知字符串的长度,所以不使用预先设置字符数组的方式,使用逐个读取字符然后判断统计的方法,我们知道英文字母分大写字母和小写字母,在 ASCII 码中,大写字母在小写字母之前,且是正序排列的,那么判断该字符是否是英文字符的方法就为 (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') ,判断数字同理,空格就单独判断,若以上都不是则为其他字符 3 实现 # include <stdio.h> int main ( ) { char c ; // 临时字符 int letters = 0 ; // 字母个数 int spaces = 0 ; // 空格个数 int digits = 0 ; // 数字字符 int others = 0 ; // 其他字符 printf ( "请输入一串字符,以回车结束:" ) ; while ( ( c = getchar ( ) ) != '\n' ) { if ( ( c >= 'a' && c <= 'z' ) || ( c >= 'A' && c <= 'Z' ) ) { letters ++ ; } else if ( c >= '0' && c <= '9'

YOLOv3目标识别之C语言调用

ε祈祈猫儿з 提交于 2020-02-06 01:50:59
深度学习目标识别之C语言调用 使用C语言对深度学习的模型进行调用,而可能是很多人目前需要的,因为使用C语言,更能满足日常开发需要,也更容易移植到到QT进行页面搭建。程序已经完成好久了,一直没有更新这个程序,但今天想使用这个程序时,提示调用DNN的一个函数未定义,绞尽脑汁,调试了整整一天,毫无结果,环境都重新配了一遍还是不行,最后终于还是解决了。 错误提示: 未定义标识符: DNN_BACKEND_OPENCV 问题所在环境问题 Opencv3.4.1无此函数 后面添加Opencv3.4.6之后,可以调用,相当于反反复复的配置了好几遍。 解决之后的我开心的不要不要的。 上图: 程序里改了一下,只检测人,用了yolov3-tiny,速度嗖嗖的哈哈。 具体的过程,我也是参考网上的大佬,放几个关键程序,带一些注释,以便帮助大家理解 首先是定义的变量名: //用于存储coco类别名 vector < string > classes ; //低置信度移除 void postprocess ( Mat & frame , const vector < Mat > & out ) ; //用于绘制预测框 void drawPred ( int classId , float conf , int left , int top , int right , int bottom , Mat &

算法之排序(中)-c语言实现

。_饼干妹妹 提交于 2020-02-06 01:20:36
文章来源:http://blog.seclibs.com/算法之排序中-c语言实现/ 上一篇文章里说了归并排序和快速排序,它们的代码实现是非常相似的,只要理解了其中的具体实现,还是比较容易写出代码的。 归并排序 代码如下,需要下载代码的请移步至文末 快速排序 代码如下,需要下载代码的请移步至文末 代码: 归并排序: GitHub 快速排序: GitHub 文章首发公众号和个人博客 公众号:无心的梦呓(wuxinmengyi) 博客:http://blog.seclibs.com/ 来源: CSDN 作者: Vesel『无心』 链接: https://blog.csdn.net/qq_18501087/article/details/104188074

手动编写C语言字符串函数

十年热恋 提交于 2020-02-06 01:01:13
C语言字符串库string.h包含很多常用的字符串函数: 字符串长度函数strlen 字符串比较函数strcmp 字符串拷贝函数strcpy 字符串追加函数strcat 左起寻找字符函数strchr 右起寻找字符函数strrchr 寻找字符串函数strstr 忽略大小写寻找字符串函数strcasestr 字符串长度函数strlen 一个字符串以‘\0’结尾才算结束,详见: C语言如何用指针指向字符串:https://mp.csdn.net/postedit/104068698 ‘\0’是字符串的一部分,但是不算字符串的长度,用strlen计算长度时,不会将‘\0’算在内;用sizeof()计算长度时,将‘\0’算在内。 首先上一段库函数版代码 # include <stdio.h> # include <string.h> int main ( int argc , char const * argv [ ] ) { char ch [ ] = "hello" ; printf ( "strlen=%d\n" , strlen ( ch ) ) ; return 0 ; } 下面是手动编写版,写了两个版本,当然,你也可以自己写。 # include <stdio.h> # include <string.h> /* int mylen(char const *dh) { int

c语言逗号表达式

倾然丶 夕夏残阳落幕 提交于 2020-02-06 00:51:32
如果你想简单的了解一下逗号表达式的话这里应该会有你需要的东西 一般形式: ( 表达式 1 , 表达式 2 , 表达式 3 , ……表达式n ) ; 从左到右依次求值 最后一个表达式就是整个逗号表达式的值 如下图 事实上我觉得逗号表达式就是把多个表达式串联在一起(可以减少代码行数) 其实没啥用 这里建议大家自己练一下 记得加括号因为逗号表达式的优先级是最低的 如下图 如果不加括号它就会直接赋值如下图 来源: CSDN 作者: 点个小站 链接: https://blog.csdn.net/xlwhg/article/details/104187637

C语言 NOTE32

邮差的信 提交于 2020-02-06 00:39:33
系统编程之共享内存 1.创建键值: 头文件: #include <sys/types.h> #include <sys/ipc.h> 函数原型: key_t ftok ( const char * pathname , int proj_id ) ; 参数分析: pathname ---->一般设为当前文件路径"."。 proj_id ---->编号,主要是为了区分不同的键值。 两个进程只要是使用相同的键,那么他们就指向同一个通信模块 使用ipcs -m 查看系统的共享内存: 2.创建共享内存shmid 功能 获取共享内存的 ID 头文件 #include <sys/ipc.h> #include <sys/shm.h> 函数原型 int shmget ( key_t key , size_t size , int shmflg ) ; 参数 分析 key 共享内存的键值 size 共享内存的尺寸(PAGE_SIZE 的整数倍) shmflg 标志位如下 IPC_CREAT 如果 key 对应的共享内存不存在,则创建之 IPC_EXCL 如果该 key 对应的共享内存已存在,则报错 SHM_HUGETLB 使用“大页面”来分配共享内存 SHM_NORESERVE 不在交换分区中为这块共享内存保留空间 mode 共享内存的访问权限(八进制,如 0644) 返回值 成功 该共享内存的