C语言学习笔记
97Marcus
盼望成为offer收割机的菜花
展开
-
C语言学习实践:贪吃蛇
Win32贪吃蛇#include <windows.h>#include <stdio.h>#include <time.h>#include "resource.h"LRESULT CALLBACK MYWNDPROC(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);//定义位图句柄HBITMAP hBitmap_Background;HBITMAP hBitmap_Apple;HBIT原创 2021-09-12 16:26:14 · 131 阅读 · 0 评论 -
C语言学习笔记12
C语言学习笔记12文件文本文件复制Win32窗口创建Win32:键盘消息/鼠标消息/绘图/画刷Win32:定时器文件//文件(字符形式ASCII 二进制形式)//缓冲区 int getchar();//写入文件(数据→缓冲区→物理文件)//读取文件(写入的反向)//代码只完成数据→缓冲区#include <stdio.h>int main() { char buf[1024] = { 0 };//初始化,文件里没有\0,读字符串可以省事 size_t n; FIL原创 2021-09-07 20:31:12 · 95 阅读 · 0 评论 -
C语言学习笔记11
C语言学习笔记11头文件tips枚举联合体双向链表队列和栈返回一个数的阶乘递归斐波那契数列用递归实现strlen:计算字符串的长度头文件tips#include "xx.h" //如果自定义头文件和系统重名,那么使用<>时优先引用系统的,使用""时优先应用自定义的枚举定义常量的一种方式 也算是整型enum AA {JIANZI,SHITOU,BU};//0,1,2enum BB {J,S=100,B};//0,100,101int main(){ enum AA a = J原创 2021-09-07 17:22:19 · 66 阅读 · 0 评论 -
C语言学习实践:通讯录的实现
#include <stdio.h>#include <stdlib.h>#include <time.h>#include <string.h>typedef struct Node { int id; char* name; char* tel; struct Node* pNext;}List;int g_Mark;char g_Key;typedef struct PAGE{ int OnePageInfo; //每.原创 2021-09-07 17:15:17 · 161 阅读 · 0 评论 -
C语言学习笔记10
C语言学习笔记10结构体结构体对齐getchar()链表链表添加链表插入结构体struct AA { int id; char* name; char* number;};typedef struct AA{ int id; char* name; char* number;}BB;//typedef为复杂的声明定义简单的别名,结构体的定义形式如上所示,BB为其别名int main(){ struct AA a = { 1,"xin","13532805647" };原创 2021-09-07 17:03:07 · 116 阅读 · 0 评论 -
C语言学习笔记9
C语言学习笔记9字符串练习题字符串练习题2getchar()要求:未知多少位的情况下,需要将所有内容回显出来暂存用户输入的一段字符,以便所需时取用比较两个字符串:strcmp字符串练习题//1.查找一个字符在另外一个字符串中第一次出现的下标//2.查找一个字符在另外一个字符串中第一次出现的地址//3.查找一个字符串在另外一个字符串中第一次出现的地址 abcccccde ccd//4.统计一个字符串中单词的个数(单词与单词之间是空格分割)“a abc make 89 12 a ma make 12原创 2021-08-13 10:56:45 · 83 阅读 · 0 评论 -
C语言学习笔记8
C语言学习笔记8字符串:以'\0'结尾的字符数组strlen函数的仿写strcpy(目标,源)部分复制:strncpy(目标,源,要复制多长)字符串拼接:strcat比较两个字符串:strcmp字符串整型互转字符串:以’\0’结尾的字符数组int main() { char str[5] = { 'a','b','c','d','\0' };//'\0'不会被输出 //char str[5] = { 'a','b','c','d','0' }; //'\0'不等于‘0’,在ASCII中‘\0’原创 2021-08-13 10:51:57 · 137 阅读 · 0 评论 -
C语言学习笔记7
C语言学习笔记7值传递VS地址传递函数练习题函数指针(具体查阅OneNote~)栈区、堆区、全局静态区、字符常量区栈区堆区:手动申请的空间全局静态区(存储全局变量和静态变量)静态变量值传递VS地址传递值传递:如果不需要修改实参,只需要将其传递进某个函数中,那么可以选用值传递地址传递:如果需要通过函数去修改main中的实参,那么选择地址传递注意:不是函数参数中出现指针就是地址传递,因为有可能实参就是一个指针,直接把指针的值传进来也是值传递void change(int *a, int *b);i原创 2021-08-13 10:41:40 · 68 阅读 · 0 评论 -
C语言学习笔记6
C语言学习笔记6typedef + 类型 + 别名constdefine + 宏的名字 + 要替换的内容有参数的宏位运算函数:对步骤的封装数组传参typedef + 类型 + 别名/*typedef unsigned int UINT;typedef int* AA;typedef int ARR[5];//使用typedef定义别名时,也要符合原来的格式*/int main(){ UINT a = 10; unsigned d = 10; printf("%d\n%d\n", a,原创 2021-08-13 10:33:27 · 65 阅读 · 0 评论 -
C语言学习笔记5
C语言学习笔记5指针数组检验程序1数组指针冒泡排序二维数组指针数组即数组(每一个元素都是指针的数组)int main() { int a = 10; int b = 20; int c = 30; int d = 40; int e = 50; int* arr[5] = { &a,&b,&c,&d,&e }; int i; for (i=0;i<5;i++) { //printf("%d\n", *arr[i]); pri原创 2021-08-13 00:28:42 · 72 阅读 · 0 评论 -
C语言学习笔记4
C语言学习笔记4指针注意事项大小端存储问题二级指针,通过pp存a的值,将a的值输出为200数组:相同类型元素的集合;数组的空间是连续的下标的原理指针注意事项int main(){ int a = 10; int *p = &a; printf("%d\n", *(p + 1)); //定义的是a这个整型变量,进行偏移4个字节以后,就偏移到了别的地址(空闲)上,不是这个程序中定义的变量,因此是乱码 printf("%d\n", *(P + 2000000)); //偏移后所指向的内存原创 2021-08-13 00:23:24 · 58 阅读 · 0 评论 -
C语言学习笔记3
C语言学习笔记3三队选手pk名单0b开头二进制,0开头八进制,0x开头十六进制区分左++和右++短路求值地址:八个十六进制的数组成指针:存地址的变量指针问题2三队选手pk名单两乒乓球队比赛,各出三个人,抽签决定比赛名单,甲队为abc,乙队为xyz,a不和x比,c不和x和z比,请输出三队选手pk名单。(注意是否排除一对多的可能性)int main(){ char a; char b; char c; for (a='x';a<='z';a++)//字符型变量可以通过++改变数字或者字母原创 2021-08-13 00:17:48 · 84 阅读 · 0 评论 -
C语言学习笔记2
C语言学习笔记2break和continue放在循环当中的意义打印某年某月的天数(主要判断2月)青蛙爬井问题年龄的二倍,父亲年龄36,儿子13,几年后父亲年龄是儿子的二倍。打印出所有的水仙花数猴子摘桃问题逻辑与或非break和continue放在循环当中的意义int main(){ int i; for (i=1;i<=10;i++) { if (5 == i)//即i=5的时候 { //break; //跳出当前循环 continue; //结束本次循环,执行下一次循原创 2021-08-13 00:08:22 · 75 阅读 · 0 评论 -
C语言学习笔记1
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar原创 2021-08-13 00:01:44 · 95 阅读 · 0 评论