- 博客(72)
- 收藏
- 关注
原创 lseek(f,0,SEEK_SET); lseek(f,0,SEEK_END);的用法
/表示在文件头的位置,偏移量为0,一般把文件的光标定位在文件头。//表示在文件尾的位置,偏移量为0,一般用作计算文件的byte数。
2023-06-27 01:03:05
358
原创 int main(int argc,char **argv)
/定义一个指针变量argv2来接收argv1[]的首地址。char **argv 可以是 char *argv[]argv2指针变量名又可以直接当数组名使用,首先搞清楚 *argv==argv[]
2023-06-26 00:46:53
247
原创 OLED屏--显示问题汇总--清屏函数以及page的列地址
/根据,0000 1111 0x0F,0001 1000 0x18,可知,x只有5个是1,要想在最后一列,//有128列,2的7次方,手册中3.Address setting command table,//或者Oled_Write_Cmd(0x1F);//lower higher,8个x,有7个x是1就可以了满足128列屏幕的要求,//可以不用写,因为下面有0-128。//一共有128列,0~127,写入0清理屏幕。//每个page从0列开始清理屏幕。//必须满足x为7个1以上,
2023-06-22 20:01:37
1649
原创 C语言-贪吃蛇
需要知道操控游戏上下左右,通常宏,需要获取上下左右键的函数,这里有:getchar()、gets(*str)、scanf(),这里有个问题输入字符时需要回车函数才可以拿到字符。3.int key//声明变量时,char 1Byte =8bit -128~127。实时获取就会需要宏中的,keypad(stdscr,1)、getch()所以不能使用char类型哦,太小了,小于0402。//少了屏幕显示会崩溃。2.printw()//打印。
2023-05-14 23:27:25
134
原创 C语言-链表的实现原理-遍历链表
2.链表的数据是无序的,是每个数据会保存下一个数据的地址,输出数据通过调用第一个数据地址,这样就可以实现遍历所有链表的数据。而且后期的更改数据不需要改动代码逻辑。1.数组的数据和地址是连续的,数组更改数据后,需要更改实现代码逻辑的,成本会很大。原理:每个数据会保存下一个数据的地址。
2023-05-07 00:49:01
708
原创 C语言-typedef --给已经有的变量类型起名字
可值typedef为了 unsigned int类型名,重新命名为u8。typedef 作用:一般给已经有的变量类型起名字。一般配合结构体使用,为了方便不需要写struct。
2023-05-04 00:29:47
191
原创 C语言-enum 枚举类型
2.C编译器把它当成常量处理,也称枚举常量,默认从0开始。3.可以直接忽略枚举类型名,直接定义枚举。1.枚举类型,列表中无需定义变量类型。
2023-05-04 00:14:46
115
原创 C语言-结构体类型指针变量
那么结构体类型也是和整型指针变量的声明一致,只需要指向结构体变量的地址。已知:整型的指针变量int *p需要指向int a的变量地址。
2023-04-27 21:51:20
79
原创 C语言--结构体struct
笔记:结构体没什么特殊的,只是把变量藏在结构体里面,而内部的变量,只是“触达的方式”不同。它算是一个模板,一般不给赋具体的值,每一项在实际应用中并不是都要使用。有时候我们需要用很多类型的数据来表示一个整体,比如学生信息。1.整型数,浮点型数,字符串是分散的数据表示。2.类比与数组:数组是元素类型一样的数据集合。如果是元素类型不同的数据集合,就要用到结构体了。例如: 写一个学生信息。
2023-04-26 00:47:02
63
原创 C语言-strcmp()函数-自我实现
作用:若str1=str2,则返回零;若str1<str2,则返回负数;若str1>str2,则返回正数。输出结果:res:1。
2023-04-23 23:54:14
198
原创 C语言-strcat拼接函数的自我实现
把src所指向的字符串(包括“\0”)复制到dest所指向的字符串后面(删除*dest原来末尾的“\0”)。要保证*dest足够长,以容纳被复制进来的*src。*src中原有的字符不变。返回指向dest的指针。strcat() 作用是把想要拼接的字符串拼接到目标字符串内。
2023-04-22 21:47:35
209
3
原创 C语言-assert断言
作用是判断参数内的是否为真,如果为假,那么它先向 stderr 打印一条出错信息,然后通过调用 abort 来终止程序运行。assert 宏的原型定义在 assert.h 中,其作用是如果它的条件返回错误,则终止程序执行。if()else用法一致,
2023-04-22 18:17:44
158
原创 C语言-malloc、free、memset、realloc、strcpy
C 库函数 void *realloc(void *ptr, size_t size) 尝试重新调整之前调用 malloc 或 calloc 所分配的 ptr 所指向的内存块的大小。C 库函数 void free(void *ptr) 释放之前调用 calloc、malloc 或 realloc 所分配的内存空间。C 库函数 void *malloc(size_t size) 分配所需的内存空间,并返回一个指向它的指针。函数原型 void *realloc(void *ptr, size_t size)
2023-04-22 16:29:13
492
原创 C语言-字符串
printf("sizeof:char * 的长度: %d\n",sizeof(char *));printf("sizeof:int * 的长度: %d\n",sizeof(int *));printf("sizeof:char 的长度: %d\n",sizeof(char));printf("sizeof:p2 的长度: %d\n",sizeof(p2));printf("sizeof--cdata的长度:%d\n",sizeof(cdata));
2023-04-19 23:35:06
418
原创 C语言-函数指针-有两个整数a,b,由用户输入1、2、3, 如输入的是1,程序就输出a和b的最大值,如输入的是2,程序就输出a和b的最小值,如输入的是3,程序就输出a和b的和
要求:必须要求函数指针变量,回调函数。
2023-04-15 00:19:36
539
原创 C语言-指针-数组-地址自加1的内存溢出问题
printf("address:0x%p,数组第%d位的值为:%d \n",p,i+1,*p);printf("address:0x%p,数组第%d位的值为:%d \n",p,i+1,*p);使用p++,来遍历数组的下一个值,那么在下面重新for()循环for(int i=0;i++)//会有内存溢出。在for循环上放,重新把数组的首地址赋值给指针变量。
2023-04-08 22:28:49
408
原创 C语言-指针-数组-两种取地址的方式
第一种:&array[0],很清楚取的是数组的第一位地址。第二种:array ,在数组的中数组名代表着数组的首地址。数组的首地址有两种表达方式。
2023-04-08 15:40:20
4431
原创 C语言-指针,使用指针交换两个整型数的值
首先通过指针变量*pdata、*pdata2,去指向main()下&data1、&data2地址的值。然后再*pdata、*pdata2交换值。使用函数封装getChange()函数。
2023-04-07 23:57:54
868
原创 C语言-指针概念
/可以看出,指针变量需要存地址,不然有报警。//a的地址赋值给指针变量P,p==&a。//打印整型变量a的地址。//*p:取p指向地址的值。//&p取p指针的地址。
2023-04-07 00:52:05
247
原创 C语言-全局变量的应用,求班上10 个学生,封装一个函数, 调用该函数后获得班上的平均分,最高分,最低分
【代码】C语言-全局变量的应用,求班上10 个学生,封装一个函数, 调用该函数后获得班上的平均分,最高分,最低分。
2023-04-05 22:39:19
203
原创 C语言-函数与数组关于形式参数的秘密
解决方法:为了避免被调函数实时拿不到数组的大小,在main函数就要提前生成一个len计算数组的大小。注意点:函数内的形参不存在数组的概念,即使【】约定了数组大小也是无效。因为:传递过来的是一个地址,数组的首地址。
2023-04-03 15:29:30
67
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人