![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
我是小Q啊
这个作者很懒,什么都没留下…
展开
-
位运算 & | ^ ~ 和三种变量交换方式
(采用二进制计数法)1.与运算 &只有当两个数都为1时才为1,可用来取部分位或者置零。2.或运算 |当两数中有一个数为1,则值为1.一般用来置1.3.非运算~将1变为0,将0变为1。4.异或运算^两数不同则为1,两数相同则为0.一般用来反转。5.左移运算符将左侧操作数的值每位向左移动,移动的位数由其右侧操作数指定。低位补0,高位溢出。6.右移运算符>>原创 2017-02-05 19:36:50 · 759 阅读 · 0 评论 -
堆栈
栈:只允许一端插入和删除的线性表。(后进先出)#include<stdio.h>#include<stdlib.h>#define MAX 10struct stack{ int top; //栈顶指针 int stack[8]; //栈大小,可理解为几层};typedef struc...原创 2017-04-01 12:19:45 · 281 阅读 · 0 评论 -
队列
队列:只允许一端删除,一端插入(先进先出)#include<stdio.h>#include<stdlib.h>#define MAX 10struct quece{ int front; //队头指针出栈 int rear; //队尾指针入栈 int quece[MAX];};typedef struct quece...原创 2017-04-01 12:55:44 · 231 阅读 · 0 评论 -
链表的创建
#include<stdio.h>#include<stdlib.h>struct node //定义结构{ int num; char name[10]; struct node * next; //指向向一个结点};typedef struct node Node; ...原创 2017-02-09 23:06:57 · 345 阅读 · 0 评论 -
链表之通讯录
链表通讯录(带文件保存)#include<stdio.h>#include<stdlib.h>#include<string.h>struct node{ char name[15]; char loc[30]; int num; int tel; struct node * next;}po;typedef struct...原创 2017-04-01 10:48:16 · 548 阅读 · 1 评论 -
什么是面向连接和无连接呢?
面向连接和无连接关键在于连接有无的区别,那么首先面向连接指的是在双方进行通信之前首先要建立一个会话(三次握手),确保消息的准确到达,如果有什么问题能够相互通知然后解决。举个栗子:打电话 那么无连接就好比寄信,只是说写信人写好对方的地址和自己的姓名地址然后就交给邮递公司了,至于到没到达也不能即使确认,所以是不可靠的。 比如说你中了一百万,然后工作人员再给你打钱之前首先和你通个电话...原创 2018-10-27 13:40:58 · 5897 阅读 · 0 评论 -
同步异步和阻塞非阻塞的理解
今天偶然遇到了关于同步异步的问题,感觉心里有点b数,但真要说出其中一二还真是开不出口,于是决定好好搜索一番来一波深入理解并用简明易懂的方式写下来。 首先,同步异步和阻塞非阻塞不是一回事,在某些意义上两者有着相似之处,但也要明白二者的区别。同步和异步强调的是“消息通信机制”。同步:调用者执行一个操作之后,等待结果,结果到达之后才继续执行后续的操作。异步:调用者执行一个操作之后,不...原创 2018-07-29 22:47:31 · 563 阅读 · 1 评论 -
反转单链表
方法一将原链表中的结点依次放入一个新的链表中实现反转while (list->next != NULL) { tmp = newList->next; //保存newList中的原后续结点 newList->next = list->next; //将list的第一个结点放到newList中 li原创 2017-08-30 16:32:44 · 391 阅读 · 0 评论 -
VS2013环境下编写的俄罗斯方块源代码
#include #include #include #include #include #include #include //#include using namespace std;/*IMAGE qiangbi;*/#define MAX_X 23#define MAX_Y 21#define LOGO 'H'int array[MAX_X][MAX_Y]原创 2017-07-28 10:05:08 · 3415 阅读 · 0 评论 -
网络编程socket套接字
一、SOCKET编程的步骤:socket():创建一个socket,主动套接口。bind();绑定ip和端口号到socket,需先配置ip、端口号。connect():客户机(client)端和服务器发送请求建立连接。listen():服务器(serv)监听client发送的请求。accept():完成连接,阻塞响应。sendto():发送数据recvfrom():接收原创 2017-04-08 14:12:45 · 565 阅读 · 0 评论 -
文件操作之系统调用
一、Linux文件描述符一个进程启动,都会打开三个文件:1、STDIN_FILENO - 02、STDOUT_FILLENO -13、STDERR_FILENO -2二、不带缓存的I/O操作(iint fd)1、fd = int open(const char * pathname,int flags)flags:O_RDONLY 只读方原创 2017-04-01 14:20:12 · 644 阅读 · 0 评论 -
判断一个整数是否为回文数
问题判定一个正整数是否是一个回文数。例如12121是回文数,而1231不是回文数。回文数定义为可以以中间某个数字对称,或者间隔对称,例如123321,或者1234321。详细的回文数介绍请参考维基百科:http://en.wikipedia.org/wiki/Palindromic_number 解法1:转换成字符串这种方法不仅可以判断一个数是否为回文数,转载 2017-01-19 15:23:43 · 3244 阅读 · 0 评论 -
深入理解TAILQ队列
TAILQ是FreeBSD/linux内核对双向队列操作的一种抽象,抽象程度不亚于C++,能实现操作队列需要的各种操作:插入元素,删除元素,遍历队列等。这个队列的优点是插入元素很快。 这里先回顾一下队列的特点(来自维基百科http://zh.wikipedia.org/wiki/%E9%98%9F%E5%88%97):队列,又称为队列(英文queue),是先进先出(FIFO, First...转载 2018-02-27 22:23:46 · 4169 阅读 · 0 评论