C语言
文章平均质量分 50
rocky_56X
这个作者很懒,什么都没留下…
展开
-
趣味题目 二的1000次方求解
#includeint main(){ int i = 0; int j = 0; int a[1000]; //预留1000个元素,从小到大,按个十百千万的顺序一直排列 for(i = 0; i < 1000;i++) //除了a[0]为1,其他都是0 { a[i] = 0; } a[1] = 1; for(i = 0原创 2018-01-31 15:12:25 · 1113 阅读 · 0 评论 -
STM32八种IO模式
在 STM32 中八种 IO 模式(1) 浮空输入_IN_FLOATING ——浮空输入,可以做 KEY 识别,RX1;(2)带上拉输入_IPU——IO 内部上拉电阻输入;(3)带下拉输入_IPD—— IO 内部下拉电阻输入;(4) 模拟输入_AIN ——应用 ADC 模拟输入,或者低功耗下省电;(5)开漏输出_OUT_OD ——IO 输出 0 接 GND,IO 输出 1,悬空...原创 2018-07-18 19:35:27 · 1232 阅读 · 0 评论 -
C语言 sprintf函数使用详解
srpintf()函数的功能非常强大:效率比一些字符串操作函数要高;而且更具灵活性;可以将想要的结果输出到指定的字符串中,也可作为缓冲区,而printf只能输出到命令行上~头文件:stdio.h函数功能:格式化字符串,将格式化的数据写入字符串中。函数原型:int sprintf(char *buffer, const char *format, [argument]...)参数:...转载 2018-07-24 16:01:52 · 2415 阅读 · 0 评论 -
C语言中ASCII码的几种表示方法
C语言中ASCII字符表示方法通常有三种方法:第一种方法是单引号表示方法,例如:’a‘,‘g’。第二种方法是十进制,十六进制表示,例如:70表示F(十进制),0x40表示@(十六进制)。第三种方法是转义字符表示,例如:\r回车,\n换行,主要表示控制字符。...原创 2018-07-30 09:40:46 · 24896 阅读 · 0 评论 -
字符串常用函数讲解(strcpy,strcmp,strstr,strncat,strlen,strspn)
1,strcmp 原型:int strcmp(const char *s1,const char *s2)返回值:s1 == s2,返回0;s1 < s2,返回负数;s1 > s2,返回正数规则:从左到右比较ASCII码,直到‘/0’结束。 2,strcpy原型:char *strcpy(char* dest, const char *src)返回值:返回值...原创 2018-08-10 14:50:13 · 722 阅读 · 0 评论 -
总结一下scanf和gets两个输入函数的区别,及如何混用
1,scanf这是我们最常见的函数,scanf是标准输入函数,使用形式:scanf(“%d”, &num)优点:可以输入所有类型的数据类型,并且效率非常高,是cin的十几倍;缺点:scanf()遇到空格、回车、Tab即结束。2,getsgets()是在stdio.h中是输入函数,使用类型:gets(str)。可以从标准输入类中读取一行字符到指定的字符串中,它在遇到E...原创 2018-08-10 16:00:21 · 2213 阅读 · 0 评论 -
八种排序算法之选择排序
#include <stdio.h>// 交换数组中下标为 i 和下标为 j 的元素的值void swap(int *a, int i, int j){ int tmp = a[i]; a[i] = a[j]; a[j] = tmp;}// 选择排序void sort(int *a, int len){ // 在数组中下标找最小元素的下标 int i, j...原创 2018-08-15 21:28:12 · 290 阅读 · 0 评论 -
QT中slot,signal,emit讲解
Qt中的类库有接近一半是从基类QObject上继承下来,信号与反应槽(signals/slot)机制就是用来在QObject类或其子类间通讯的方法。作为一种通用的处理机制,信号与反应槽非常灵活,可以携带任意数量的参数,参数的类型也由用户自定。同时其本身也是类型安全的,任何一个从QObject或其子类继承的用户类都可以使用信号与反应槽。 信号的作用如同Windows系统中的消息。在Q...转载 2018-08-22 18:27:29 · 3465 阅读 · 1 评论 -
STL容器set使用说明(set保存自定义数据)
c++ stl集合set介绍 c++ stl集合(Set)是一种包含已排序对象的关联容器。set/multiset会根据待定的排序准则,自动将元素排序。两者不同在于前者不允许元素重复,而后者允许。1) 不能直接改变元素值,因为那样会打乱原本正确的顺序,要改变元素值必须先删除旧元素,则插入新元素2) 不提供直接存取元素的任何操作函数,只能通过迭代器进行间接存取,而且从迭代器角度来看,...转载 2018-08-17 10:05:35 · 1561 阅读 · 0 评论 -
八种排序算法之冒泡排序(冒泡排序的优化,双向冒泡)
首先,让我们看看基本的冒泡排序#include <iostream>using namespace std;void swap(int *a, int i, int j){ int tmp = a[i]; a[i] = a[j]; a[j] = tmp;}void print(int *a, int len){ for(int i = 0; i < ...原创 2018-08-27 13:29:06 · 1356 阅读 · 0 评论 -
Linux C 基础简答题 2
(1)数组和指针的区别?(1)空间分配指针是动态分配空间,通过malloc在堆上分配所需要的空间,分配的空间不一定连续,在使用完之后需要调用free()来释放分配空间。而数组是静态分配空间,在全局变量区或者栈上分配空间,分配的空间是连续的,局部变量在生命周期结束后自动释放,全局变量在程序结束完自动释放。(2)访问效率指针是通过地址间接访问,而数组是直接访问数值。因此指针的访问效率低,数转载 2018-02-02 16:33:54 · 317 阅读 · 0 评论 -
数据结构——链表
头文件 1 #ifndef _LINKLIST_H_ 2 #define _LINKLIST_H_ 3 4 #define SUCCESS 100 5 #define FAILURE 101 6 7 typedef int DataType; 8 9 struct node 10 { 11 Data原创 2018-02-03 22:14:23 · 407 阅读 · 0 评论 -
Linux C 基础简答题 1
(1)系统调用和库函数的区别?库函数是语言本身的一部分,而系统函数是内核提供给应用程序的接口,属于系统的一部分。函数库调用是语言或应用程序的一部分,而系统调用是操作系统的一部分。用户应用程序访问并使用内核所提供的各种服务的途径即是系统调用。在内核和用户应用程序相交界的地方,内核提供了一组系统调用接口,通过这组接口,应用程序可以访问系统硬件和各种操作系统资源。 1.系统调用是为了转载 2018-01-31 16:55:26 · 617 阅读 · 0 评论 -
趣味问题 约瑟夫圈的数组求解方法
假设n个人围成一个圈,从1开始报数,到3就把报数的人踢出,然后从1开始,一直循环下去,直到最后一个人,请问这个 人是第几号人?这就是约瑟夫圈问题,这个问题的求解方法比较多,今天介绍一下它的数组求解方法。 1#include 2 int main() 3 { 4 int num = 0,out = 0,i = 0,n; //num为报号,到3清零;ou原创 2018-02-02 15:08:07 · 433 阅读 · 0 评论 -
参数交换实现的3种方法
1,引入第三个参数 1 #include 2 int main() 3 { 4 int i = 1,j = 2; 5 int tmp; 6 7 tmp = i; 8 i = j; 9 j = tmp; 10 printf("%d %d\n", i, j); 11 }2,加减法 1 #include原创 2018-02-02 18:45:54 · 416 阅读 · 0 评论 -
C语言 函数 数组
(1)static在修饰main和普通函数中的变量时,都是修饰局部变量,为什么普通函数中的变量可以保持,main中变量不保持?static修饰局部变量时,变量存放在栈区,生命周期随着语句块执行结束而结束。但使用static修饰变量存放在静态数据区,其生命周期持续到程序结束。以上有个概念,就是语句块结束和程序结束是不同的,对static修饰的普通函数中的变量而言,语句块结束但是程序并没有结束原创 2018-01-25 22:01:26 · 2905 阅读 · 0 评论 -
数据结构——链栈
(一)头文件 1 #ifndef _LINKSTACK_H_ 2 #define _LINKSTACK_H_ 3 4 #define SUCCESS 1000 5 #define FAILURE 1001 6 7 typedef int DataType; 8 9 struct node //表示结点的信息...原创 2018-02-08 20:36:09 · 351 阅读 · 0 评论 -
数据结构——循环队列
(一)头文件 1 #ifndef _LINKLIST_H_ 2 #define _LINKLIST_H_ 3 4 #define SUCCESS 100 5 #define FAILURE 101 6 7 typedef int DataType; 8 9 struct node 10 { 11 DataT...原创 2018-02-08 20:43:02 · 507 阅读 · 0 评论 -
C语言 指针
指针使用的三个步骤定义指针变量;给指针变量赋值;使用指针创建运算;注意:1,指针只能指向同类型的变量,如int类型的指针只能指向int(1)如何避免野指针?野指针指向一个已删除的对象或未申请访问受限内存区域的指针。野指针的出现主要有两种情况,一,指针变量未初始化,这个可能是比较常见的,如int *p;*p = a;在定义指针时没有明确缺省值,导致指针乱指,导致出现段错误原创 2018-01-29 12:03:58 · 259 阅读 · 0 评论 -
大端小端的判别以及如何进行交换
Big endian和Little enddian的代表就是Motorola的PowerPC系列CPU和Intel的x86系列CPU。PowerPC系列采用big endian方式存储数据,而x86系列则采用little endian方式存储数据。两者主要不同在于存放数据顺序的不同。所谓Big endian就是从低地址到高地址存放高字节到低字节,地址第一个字节是高字节,但是Little end...原创 2018-02-06 11:20:28 · 670 阅读 · 0 评论 -
数据结构——队列
队列是一种只允许在一段进行插入操作,在另一端进行删除操作的线性表。严格来讲就是比较特殊的线性表。(1)队列与栈的区别?相同点:1.都是线性结构。2.插入操作都是限定在表尾进行。3.都可以通过顺序结构和链式结构实现。、4.插入与删除的时间复杂度都是O(1),在空间复杂度上两者也一样。5.多链栈和多链队列的管理模式可以相同。不同点:1.删除数据元素的位置不同原创 2018-02-06 17:35:12 · 434 阅读 · 0 评论 -
汉诺塔递归写法
汉诺塔(Hanoi Tower),又称河内塔,源于印度一个古老传说。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,任何时候,在小圆盘上都不能放大圆盘,且在三根柱子之间一次只能移动一个圆盘。这类问题往往都是递归解法(如斐波拉契数列),我们先考虑3个盘的情况,然后推导到全部。...原创 2018-09-19 23:25:34 · 503 阅读 · 0 评论