面试
Cindy_1224
这个作者很懒,什么都没留下…
展开
-
剑指offer 面试分类总结
数组:面试题3:数组中重复的数字 面试题4:二维数组中的查找 面试题21:调整数组顺序使奇数位于偶数前面 面试题39:数组中出现次数超过一半的数字 面试题42:连续子数组的最大和 面试题45:把数组排成最小的数 面试题49:丑数 面试题50:第一个只出现一次的字符 面试题51:数组中的逆序对 面试题56:数组中数字出现的个数 面试题57:和为s的数字 面试题59:队列的最大值 面试题61:扑克牌中的顺子 面试题63:股票的最大利润字符串:面试题5:替换空格 面试题17:原创 2020-07-15 19:55:53 · 150 阅读 · 0 评论 -
二维数组的查找
//从矩阵的右上角开始排除法查找,bool find(int* matrix, int rows, int columns, int number) { int row = 0; int column = columns - 1; bool found = false; if (matrix != NULL && rows >0 && columns >0){ //行号递增不能大于行数,列数递减不能小于0 while(row &...原创 2020-06-16 09:56:28 · 204 阅读 · 0 评论 -
TCP连接的建立与终止
ACK(acknowledge) 确认序号SYS(Synchronize) 同步序号FIN (finish)发送端完成发送任务连接的三次握手为了建立一个TCP连接需要经过三次握手;第一次;请求端发送一个SYN段指明客户打算连接的服务器的端口,以及初始序号(ISN)。第二次;服务端发送返回报文段SYN作为应答,序号为服务端初始...原创 2018-12-27 14:08:40 · 264 阅读 · 0 评论 -
char* 和char[]
char* 和char[]char c[]="hello world" 是分配一个局部数组,是个局部变量,它所对应的是内存中的栈,c不占内存char* c="hello world" 是分配一个指针变量,是个全局变量,它所对应的是内存的全局区域,c占了一个存储区字符串常量“hello world”保存在只读的数据段,指针全局变量c保存在普通数据段(静态存储区),如下代码是可行的;cons...原创 2019-12-22 11:58:42 · 466 阅读 · 0 评论 -
函数指针
int*((*b)[10]) 和int* (*b)[10] :b是一个指针,指向一个一维数组,数组元素都是int*Long(*fun)(int)函数指针double(*f[10])() f 是一个数组,f有10个元素,元素都是函数的指针,指向的函数类型是没有参数且返回double的函数int(*(*F)(int,int))(int) F是个函数指针,指向的函数类型有两个int...原创 2019-12-22 11:57:37 · 173 阅读 · 0 评论 -
指针数组和数组指针
int(*ptr)[] 是一个指针,指向数组,即为数组指针int*ptr[] 和int*(ptr[])是一个数组,装着指针,即为指针数组总结:从左往右读,加了()的最后读。int a[] = { 1, 2, 3, 4, 5 };int *ptr = (int*)(&a + 1);printf("a数组的第5个元素 *(ptr - 1): %d\n", *(ptr - 1))...原创 2019-12-22 11:49:23 · 127 阅读 · 0 评论 -
mymemcpy
memcpy函数将n个字符从源对象复制到目标对象。如果源对象和目标对象重叠,则memcpy的行为是未定义的。在memcpy中,我们需要传递源和目标缓冲区的地址以及要复制的字节数(n)void* memcpy(void *dst, const void *src, Size_t num){ assert(dst !=NULL && src !=NULL &&...原创 2019-09-21 20:42:45 · 285 阅读 · 0 评论 -
c 语言实现字符串的反转
题目要求:编写程序:从键盘任意输入一个字符串,输出该字符串。然后,将该字符串逆序存放后再输出,要求用字符指针完成。代码:#include <stdio.h>#include <string.h>#define MAX_SIZE 1024void reverse(char* str){ assert(str); int ilen = strlen(...原创 2019-06-21 16:16:50 · 14774 阅读 · 3 评论 -
类型安全的
https://blog.csdn.net/chengonghao/article/details/50974022原创 2019-02-01 09:58:51 · 413 阅读 · 0 评论 -
选择题
由多个源文件组成的C程序,经过编辑、预处理、编译,链接等阶段会生成最终的可执行程序。下面哪个阶段可以发现被调用的函数未定义?A 预处理B 编译C 链接D 执行1、预处理:头文件展开、宏定义展开、条件编译等,不做语法检查2、编译:检查语法,将预处理后文件编译生成汇编文件3、汇编:将汇编文件生成目标文件(二进制文件)4、链接:C语言写的程序是需要依赖各种库的,所以编译之后还需要把库链接...原创 2018-12-08 18:03:37 · 273 阅读 · 0 评论 -
如何定义一个只能在堆上(栈上)生成对象的类?
链接:https://www.nowcoder.com/questionTerminal/0a584aa13f804f3ea72b442a065a7618 在C++中,类的对象建立分为两种,一种是静态建立(建在栈上),如A a;另一种是动态建立(建在堆上),如A* ptr=new A;这两种方式是有区别的。 静态建立一个类对象,是由编译器为对象在栈空间中分配内存,是通过直...转载 2018-12-05 11:17:22 · 553 阅读 · 0 评论 -
实现strcpy
int my_strcpy(const char* in_src, char* out_dest){ assert((in_src != NULL) && (out_dest != NULL)); while(*in_src){ *out_dest++ = *in_src++; } out_dest='\0'; return 0;}原创 2018-08-16 17:58:22 · 166 阅读 · 0 评论 -
单链表操作
#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <string.h>#include <assert.h>struct Node{ int data; struct Node *next;}Node;typedef st...原创 2018-08-16 14:18:58 · 188 阅读 · 0 评论