- 博客(18)
- 问答 (1)
- 收藏
- 关注
原创 关键字static的作用-C语言
C语言中:1). 在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。2). 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。3). 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用。...
2020-03-23 16:29:57 167
原创 TIME_WAIT 状态存在的意义
一:什么是TIME_WAIT:tcp连接后,在四次握手之后,先发FIN标志位的一端就会进入time_wait状态。二:存在意义:1.可靠的终止TCP链接/保证挥手能够可靠运行2.有时间识别迟来的数据包并且丢弃...
2020-03-07 22:32:56 469
原创 三次握手与四次挥手详解以及可能的面试题
一、三次握手与四次挥手1.三次握手:第一次握手:建立连接时,客户端发送syn包(syn=x)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。第二次握手:服务器收到syn包,必须确认客户的SYN(ack=x+1),同时自己也发送一个SYN包(syn=y),即SYN+ACK包,此时服务器进入SYN_RE...
2020-03-07 22:01:25 299
原创 OSI 7 层模型与 tcp/ip 协议 4 层模型
OSI七层模型:从上到下:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层TCP/IP协议4层:应用层、传输层、网络层、数据链路层...
2020-03-07 18:43:47 119
原创 进程标识与进程创建(pid, fork)
一、进程标识(pid) 每个进程都有一个非负整数形式的唯一编号,即 PID。PID 在任何时刻都是唯一的,但是可以重用,当进程终止并被回收以后,其 PID 就可以为其它进程所用。进程的 PID 由系统内核根据延迟重用算法生成,以确保新进程的 PID 不同于最近终止进程的 PID。二、进程创建(fork)和父子进程#include <unistd.h>pid_t ...
2020-03-07 18:25:56 397
原创 冒泡排序
冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。1.算法描述(1)比较相邻的元素。如果第一个比第二个大,就交换它们两个;(2)对每一对相邻元素作同样的工作,从开始第一对到结尾的最后...
2020-03-06 19:21:00 135
原创 Mysql基本查询语句使用
单表1.普通查询select * from stu; //同匹 查询表中所有信息 不建议select id,name,sex,age from stu;//2select *from stu where id = “001”;2.去重查询 distinct3.排序查询 order by *** asc/desc多表4.分组查询 group byselect i...
2020-03-05 20:10:27 186
原创 C语言:位运算相关总结
1.位运算符号&,|,^,~(取反,不分正负数),<<(标准规定在右边补0),>> (正数则左边补0,负数标准没有规定在左边补充的数字,分为逻辑右移和算术右移,具体由编译器决定,windows平台和gcc采取算术右移即负数补1)2.常见的二进制位的变换操作去掉最后一位 | (101101->10110) | x >> 1在最后加一...
2019-05-20 17:50:41 244
原创 C语言:va_list的用法
一、n的作用: 1.定位...; 2.确定...中数据的个数二、求n个数的平均值: 相关代码以及注释int Avg(char n,...){ int sum = 0; va_list list;//char *list; va_start(list,n);//list定位到...的开头 for(int i=0;i<n;i+...
2019-05-20 17:37:13 2440
原创 C语言:泛型编程的一些注意事项
1.void *:没有特定类型的指针(泛型指针,通用指针)2.特定指针 -> 通用指针:C可以;C++可以 通用指针 -> 特定指针:C可以; C++不可以3.例:在无序的数组arr中查找关键字key,找到返回下标,失败返回-1int Search_int(int *arr,int len,int key){ for(int i=0;i<l...
2019-05-20 17:31:45 229
原创 公司笔试题:假设在n进制下,567*456=150216,则n的值是()
解题思路第一步:利用进制的计算方法,可获得如下算式(5n^2+6n+7 )*(4n^2+5n+6)=20n^4 =49n^3+88 n^2+71n+42=n^5 +5n^4 +2n^2+n+6 ①第二步:对①式两边同%n,对n取余42%n=6 ②右边个位数为6,进制数余数不是6的进制第三步:①的两边同时除以n,然后在同时%n(71+41/n)%n=...
2019-04-01 14:22:40 426
原创 C语言:关于指针加法的运算
首先有三种思路:1.加整个数组:若加整个数组,则无法具体访问数组中某个元素,因此这个思路无法继续进行2.加一个字节:若加一个字节,则元素地址变化如下:这种方法很繁琐,一般不进行使用3.增加一个单元格(基本使用这个方法):运算公式如下:指针+i,表示加i个单元格,其加i*sizeof(指针本身去掉一个*)字节代码实现如下:int main(){...
2019-04-01 14:14:00 1284
原创 C语言:如何将两个数的值进行交换
1.建立tmp临时变量(最易理解,使用最多)int main(){ int a=10; int b=20; int tmp=a; a=b; b=tmp; printf("%d,%d",a,b);}缺陷:无法把子函数中进行交换的值传递到父函数中,例如void Swap(int a,int b){ int tmp=a; a=b; b=tmp;}int ma...
2019-04-01 13:56:44 2839
原创 C语言课后习题:给一个不多于5位的正整数,要求如下:
1.求出它是几位数:①核心思想:进入一个从0开始的循环,让这个正整数依次对10取余,所得余数再对10取余,直到余数为0,循环结束,循环次数就是该正整数的位数②代码如下:int GetFigures(int n){ int count = 0; do { count++; n /= 10;//对10取余,再取余 }while(n != 0);//当余数为零时,循环结...
2019-04-01 13:47:10 21815
空空如也
Lens连不上本地的Terminal
2022-08-03
TA创建的收藏夹 TA关注的收藏夹
TA关注的人