C
文章平均质量分 58
ArrowYL
Try to be a man between NIUA and NIUC.
展开
-
C语言关键词
今天学了几个关键字,了解了它们的用法,在接下来的学习中还需要继续熟悉练习。static: 1、全局静态变量:作用范围局限于它的源文件,只有本文件内的代码才可以访问,在其他文件内不可见。 2、局部静态变量:局限于特定函数,但出作用于不释放,在函数体内的静态变量的值也能够维持。 3、静态函数:作用范围仅限于它的源文件,只有本文件内才能调用,函数名在其他文件不原创 2018-01-31 22:13:43 · 292 阅读 · 1 评论 -
C语言小功能实现--停车场功能
问题描述:停车场是一个能放 n 辆车的狭长通道,只有一个大门,汽车按到达的先后次序停放。若车场满了,车要停在门外的便道上等候,一旦有车走,则便道上第一辆车进入。当停车场中的车离开时,由于通道窄,在它后面的车要先退出,待它走后在依次进入。 4 * 文件名称:park.c 5 * 创 建 者:Y 6 * 创建日期:2018年02月22日 7 * 描 述: 8 *...原创 2018-03-02 21:33:58 · 1394 阅读 · 0 评论 -
排序算法3 —— 插入排序
插入排序假如给你一串数。从第二个开始,每个和自身前面的数字比较,根据排序的方式,比他大或者小,将其插入,原来的数字后移。直到全部插入完成。void insert_sort(int a[], int n){ int i, j, k; for (i = 1; i < n; i++) { //为a[i]在前面的a[0...i-1]有序区间中找一个...原创 2018-03-10 13:46:41 · 240 阅读 · 0 评论 -
C语言时间函数相关
time_t 这种类型就是用来存储从1970年到现在经过了多少秒,time()函数来获得日历时间原型为:time_t time(time_t * timer)ctime()函数需要先参照本地的时间设置,把日历时间转化为本地时间,然后再生成格式化后的字符串,先需要上面的time_t获取日历时间 再用char * ctime(const time_t *timer); 注意Ctime用取地址符。t...原创 2018-02-23 22:23:49 · 463 阅读 · 0 评论 -
C语言链表通讯录问题总结
1.定义链表时typedef struct Node { DataType data; struct Node *next; }Node; typedef Node *llist;容易出现从不兼容的指针类型赋值 从不兼容的指针类型初始化原因:第一行的Node必须有,而且必须和Node*next中的一致,所以建议改为 typedef struct node 31 { Data...原创 2018-02-17 21:05:39 · 1014 阅读 · 0 评论 -
排序算法2 ——简单选择排序
#include <stdio.h> 13 int main(int argc,char *argv[]) 14 { 15 int i,j,min,temp; 16 int a[10]={1,9,4,0,2,6,3,7,5,8}; 17 for(i=0;i<10;i++) 18 { 19 min=i; 20 ...原创 2018-03-08 21:28:48 · 289 阅读 · 0 评论 -
排序算法1 ——冒泡排序
最简单排序实现算法一 [csharp] view plain copy 1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <time.h> 4 #define MAX 10 5 int main() 6 {int i,j,temp; 7 srand(time(NUL...原创 2018-03-08 21:02:33 · 231 阅读 · 0 评论 -
C++学习笔记(二)引用与指针
一.引用和指针的异同1.指针在定义时,可以不初始化,引用在定义时必须初始化2.指针变量指向的地址可以根据需要动态修改,引用只要和某个变量绑定后就不能改变。3.指针本身需要占用4个字节存放空间,而引用本身不要不用分配内存空间。4.使用Sizeof求指针变量的大小总是4个字节,表示地址所占的空间是4个字节,而Sizeof引用的大小是不固定的,由引用的变量决定。C++中,通常使用引用。二.内联函数的使用...原创 2018-03-08 18:25:24 · 241 阅读 · 0 评论 -
链表通讯录 文件编程部分
1 #define fname "TXL.db" 定义文件名int Rfile(llist *L){ FILE *fp; 定义一个指向文件流的指针,通过操作这个指针你就能进行文件读写,打开关闭 DataType e; int i,size; if((fp=fopen(fname,"r"))==NULL) { perror("打开文件失败"); ...原创 2018-02-17 22:02:24 · 417 阅读 · 0 评论 -
C语言小功能实现--通讯录功能
/****************************************************************** Copyright (C) 2018 SuQian Ltd. All rights reserved.* * 文件名称:myllist.c* 创 建 者:yulei* 创建日期:2018年02月03日* 描 述:***...原创 2018-03-02 22:05:27 · 350 阅读 · 0 评论 -
数据库Sqlite3学习笔记(四)
int sqlite3_get_table( sqlite3 *db, /* An open database */ const char *zSql, /* SQL to be evaluated */ char ***pazResult, /* Results of the query */ int *pnRow, /* Nu...原创 2018-03-11 20:28:11 · 219 阅读 · 0 评论 -
量子软件开发包QPanda2学习之路(三)利用量子云平台进行量子计算
当我们构建好量子程序后,可以利用QPanda2内置的量子虚拟机程序运行并获取结果,也可以将计算任务提交给性能更为强劲的量子云平台计算服务器。该部分的使用类似QPanda2的量子虚拟机功能,不同的任务类型,调用不同的接口,下面是示例程序。MEASURE我们需要在量子程序中添加measure节点用于获取计算结果,否则服务器不会返回任何结果。MEASURE的结果具有随机性,它仅仅表示一次运行...原创 2019-02-22 09:01:03 · 818 阅读 · 0 评论 -
量子软件开发包QPanda2学习之路(二)量子程序转化模块
上一节中提到,QRunes文本是用于表述量子程序的指令集文本,所以在使用QPanda2的过程中不可避免的牵扯到量子程序的转化问题,在QPanda2中提供相关的函数接口支持转化功能的实现。量子程序转化QRunes模块欲使用这一功能,我们先进行量子程序的构建。具体看下面这一段简单的示例代码 init(); auto prog = CreateEmptyQProg();...原创 2019-02-22 09:00:59 · 719 阅读 · 0 评论 -
量子软件开发包QPanda2学习之路(一)基础入门
1.QPanda2简介Q-Panda 2 SDK(Quantum Panda 2 Software Development Kit)是由本源量子推的开源量子程序开发工具包。其支持主流的量子逻辑门操作,并且可对不同平台下的量子程序进行针对性优化,可适配多种量子芯片。QPanda 2 使用C++语言作为经典宿主语言,并支持以QRunes和QASM书写的量子语言。目前,QPanda 2.0支持本...原创 2019-02-22 09:00:53 · 3514 阅读 · 1 评论 -
C++学习笔记(三十四)知识整理1
1.整数转化字符串,不用itoa using namespace std;//字符串整数转化int main(){ int num = 12345; char str[7], s[7]; int i = 0, j = 0; while (num) { s[i] = num % 10 + '0'; i++; num = num / 10; } s[i] = 0; cout <<...原创 2018-04-11 20:02:55 · 270 阅读 · 0 评论 -
排序算法思想——归并排序、堆排序、shell排序
1.归并排序归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。两个已经排序的序列合并成一个序列的操作将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。归并排序的基本思想将待排序序列R[0...n-1]看成是n个长度为1的有序序列,将相邻的有序...原创 2018-03-21 20:34:13 · 353 阅读 · 0 评论 -
二叉树的遍历
二叉树及二叉树遍历完全二叉树二叉树的遍历遍历的性质1、完全二叉树对于一棵具有n个节点的二叉树(按层序编号),如果编号为i的节点与同样深度的满二叉树中编号为i的节点在二叉树的位置完全相同,则为完全二叉树。换句话来说,如果每个节点按照满二叉树的结构逐层顺序进行编号,如果编号出现编号空挡,就说明不是完全二叉树,否则就是。如下图所示:左边二叉树按照完全二叉树进行编号,出现了10号的空挡,右边二叉树出现了6...转载 2018-04-07 20:46:08 · 232 阅读 · 0 评论 -
C++学习笔记(四)函数重载
1.函数重载// 函数名相同,形参类型不同,可以构成函数重载// C++编译器对函数的处理:编译的时候将参数类型加入到函数名中形成新的函数名// mySwapiivoid mySwap(int &a, int &b) // { int tmp = a; a = b; b = tmp;}// mySwapddvoid mySwap(double &a, double &am...原创 2018-03-19 10:18:28 · 321 阅读 · 0 评论 -
实现网络聊天室时的问题
双方建立socket -> 客户机把注册信息打包好 -> 写入用户socket -> 服务器读socket ->服务器把返回信息打包好 写入服务器socket这都没问题问题出现在客户机读的时候,读里面处理结果的值不对,但是服务器那把处理的结果没问题然后我就花了2天的时间 ,先是自己不断打印值,看看问题出在哪里 然后在网上找来找去,把socket 以及read write 各...原创 2018-03-12 20:23:50 · 375 阅读 · 0 评论 -
C语言简答题(一)
1.C/C++编译的程序占用的内存分为以下几个部分、一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放 , 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。 3、全局区(静态区)(s...原创 2018-01-29 10:23:11 · 7830 阅读 · 0 评论 -
malloc()和calloc()区别 以及memset()
在进行C/C++编程的时候,需要程序员对内存的了解比较好清楚,经常需要操作的内存可分为下面几个类别:堆栈区(stack):由编译器自动分配与释放,存放函数的参数值,局部变量,临时变量等等,它们获取的方式都是由编译器自动执行的堆区(heap):一般由程序员分配与释放,基程序员不释放,程序结束时可能由操作系统回收(C/C++没有此等回收机制,Java/C#有),注意它与数据结构中的堆是两回事,分配方式...原创 2018-02-14 18:45:04 · 5634 阅读 · 0 评论 -
C语言学习笔记(三)
1.删除一个字符串最右边的空格,然后输出字符串 1 #include 2 #include 3 4 5 6 7 8 int main() 9 {char str[20]="he llo world!"; 10 int i,j,pos; 11 pos=strlen(str); 12 for(i=pos-1;i>=0;i--) 13原创 2018-01-25 22:50:28 · 201 阅读 · 0 评论 -
C语言学习笔记(二)
1.题目:编写程序,打印菱形星号组合 * * * * * * * * * * * * 1 #include 2 int main() 3 { 4 printf("\n\ 5 *\n\ 6 * *\n\ 7 * *\n\ 8原创 2018-01-25 19:59:59 · 254 阅读 · 0 评论 -
C语言学习笔记(一)
1.scanf后如果跟scanf(“%c”)会读取缓冲区的内容,即什么输出都没有,解决办法加一个getchar()在前面,或者scanf(“空格%c”),会滤掉前面的空格,tab,回车。2.char str【2】=“hello”;str【0】=‘h’,str【1】=‘e’。。。如果输入的字符串长度超过str的长度,会导致错误,用fgets()3.赋值运算符结合率为:“自右而左”。例如:原创 2018-01-24 18:41:56 · 261 阅读 · 0 评论 -
C语言函数题
1.函数调用语句时,计算机依次从右向左求解主调函数实参的值。下一题以此求得a=b=2.输出c=0. 1 #include 2 int fun(int a,int b) 3 { 4 int c; 5 if(a>b) { 6 c=1; 7 } 8 if(a<b) 9原创 2018-01-28 19:24:00 · 563 阅读 · 0 评论 -
为什么链表P->next指向下一个节点
我的理解:递归调用,它在结构体里面定义了一个指针,但这个指针又指向由这个结构体定义的下一个变量。通过指针就可以找到地址它在结构体里定义了一个指针,但是这个指针又指向由这个结构体定义的下一个变量。通过指针就可以找到地址。循环链表的特点是无须增加存储量,仅对表的链接方式稍作改变,即可使得表处理更加方便灵活。①循环链表中没有NULL指针。涉及遍历操作时,其终止条件就不再是像非循环链表那样判别p或p->n...原创 2018-02-04 09:10:05 · 6805 阅读 · 1 评论 -
野指针相关
什么是野指针?野指针不是NULL指针,是指向“垃圾”内存的指针。即它是随机指向的,系统自动对其初始化。 野指针会造成什么样的后果呢?最大的问题:它会导致内存泄漏。 什么叫作内存泄漏?指由于疏忽或错误造成程序未能释放已经不再使用的内存的情况。内存泄漏并非指内存在物理上的消失,而是程序分配某段内存后,由于设计错误,失去了对该段内存的控制,因而造成转载 2018-02-01 10:22:24 · 121 阅读 · 0 评论 -
C语言简答题(二)
1.库函数与系统调用的联系与区别调用※函数库调用 VS 系统函数库调用系统调用平台移植性好依赖于内核,不保证移植性调用函数库中的一段程序(或函数)调用系统内核的服务一个普通功能函数的调用是操作系统的一个入口点转载 2018-02-01 10:18:25 · 4345 阅读 · 0 评论 -
通过C语言实现猜数字游戏
#include#include#includevoid game(int s){ int b = 0; //设定游戏猜测值 printf("please input\n"); while (1) { scanf_s("%d", &b); if (s>b)转载 2018-01-24 22:09:35 · 335 阅读 · 0 评论 -
C语言学习笔记(五)
1.题目:利用指针求一个字符串的逆序 1 #include 2 #include 3 int main () 4 { char str[]="how are you"; 5 char *p1,*p2; 6 int i; 7 char temp; 8 p1=str; 9 p2=str+strlen(str)-1; 10 for(i=0;i<=原创 2018-01-27 20:36:06 · 273 阅读 · 0 评论 -
C语言笔试题
1.题目:查找最小的k个元素(笔试题) 输入n个整数,输出其中最小的k个。 例如输入1,2,3,4,5,6,7和8这8个数字,则最小的4个数字为1,2,3和4 1 #include 2 int main() 3 {int n,i,*p,m,j,t; 4 printf("输入的数字个数: \n"); 5 scanf("%d",&n); 6 int a[原创 2018-01-27 22:02:17 · 561 阅读 · 0 评论 -
C语言指针定义变量方式
用变量a给出下面的定义:1、 一个整型数;int a; 2、 一个指向整型数的指针;int *a; 3、 一个指向指针的指针,它指向的指针是指向一个整型数;int **a; 4、 一个有10个整型数的数组;int a[10]; 5、 一个有10个指针的数组,该指针是指向一个整型数的;int *a[10]; 6、 一个指向有10个整型数组的指针;int (*a)[10]; 7、 一个指...转载 2018-02-08 10:13:06 · 836 阅读 · 0 评论 -
C语言简答题(五)
1.什么是同步IO和异步IO?异步文件IO也就是重叠IO。在同步文件IO中,线程启动一个IO操作然后就立即进入等待状态,直到IO操作完成后才醒来继续执行。而异步文件IO方式中,线程发送一个IO请求到内核,然后继续处理其他的事情,内核完成IO请求后,将会通知线程IO操作完成了。如果IO请求需要大量时间执行的话,异步文件IO方式可以显著提高效率,因为在线程等待的这段时间内,CPU将会调度其他线程进...原创 2018-02-08 09:49:35 · 1042 阅读 · 0 评论 -
C语言各种数据结构定义总结
1.栈(先进后出)-顺序结构 typedef int DataType; 21 22 typedef struct 23 { 24 DataType data[MAX]; 25 int top; 26 }Stack; 27 28 Status InitStack(Stack *S) 29 { 30 S->top = -1; 31 re原创 2018-02-07 19:38:13 · 5560 阅读 · 0 评论 -
二叉树的性质
二叉树性质:1.在二叉树的第i层上最多有2 i-1 个节点 。(i>=1)。2.二叉树中如果深度为k,那么最多有2k-1个节点。(k>=1)。3.n0=n2+1 n0表示度数为0的节点(叶子节点) n2表示度数为2的节点。4.在完全二叉树中,具有n个节点的完全二叉树的深度为[log2n]+1,其中[log2n]+1是向下取整(不大于[log2n]+1的最大整数)。5.若对含原创 2018-02-06 18:53:19 · 261 阅读 · 0 评论 -
C语言学习笔记(六)
1.通用的计算队列长度公式为:(rear-front+QueueSize)%QueueSize;千万不能用front-rear2.遍历栈的元素,注意后进先出Status TraverseStack(Stack S){int i;for (i=StackLength(S)-1; i>=0;i--){visit(S.data[i]);}return TRUE;}3.用链表表示的队列,其front...原创 2018-02-05 21:53:13 · 173 阅读 · 0 评论 -
C语言学习笔记(六)
1.通用的计算队列长度公式为:(rear-front+QueueSize)%QueueSize;千万不能用front-rear2.遍历栈的元素,注意后进先出Status TraverseStack(Stack S){int i;for (i=StackLength(S)-1; i>=0;i--){visit(S.data[i]);}return TR原创 2018-02-05 15:39:48 · 195 阅读 · 0 评论 -
C语言学习笔记(四)
1.题目:输入一个整数n,求从1到n这n个整数的十进制表示中1出现的次数。(google面试题)例如 输入12,从1到12这些整数中包含1 的数字有1,10,11和12,1一共出现了5次。分析:这是一道广为流传的google面试题 1 #include 2 int main() 3 {int count=0; 4 int i,a; 5 int n; 6原创 2018-01-26 19:30:09 · 150 阅读 · 0 评论 -
C语言简答题(三)
1.C语言中指针与数组的区别 数组要么在静态存储区被创建(如全局数组) ,要么在栈上被创建。数组名对应着(而不是指向)一块内存,其地址与容量在生命期内保持不变,只有数组的内容可以改变。指针可以随时指向任意类型的内存块,它的特征是“可变” ,所以我们常用指针来操作动态内存。指针远比数组灵活,但也更危险。 2.关键字const的含义及其作用 const是原创 2018-02-05 10:26:20 · 4481 阅读 · 0 评论 -
MySQL 线程池、连接池、长连接、短连接概念
线程池简介1、mysql每连接每线程,mysql都分配一个单独的线程,该线程处理客户端发来的所有命令2、每个线程会占用一定的系统资源,线程数越多消耗的系统资源也越多3、线程的创建和销毁有一定的开销4、当线程数过多时,如果大部分线程都处于活跃状态,会导致频繁的上下文切换,从而造成系统巨大的开销5、线程的本质就是线程共用,多个连接之间共享线程何时使用1、在有大量短...转载 2019-03-27 14:52:16 · 1733 阅读 · 0 评论