小甲鱼学完的c语言笔记

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

目录(ctrl加鼠标点击)1、翻译查阅2、辅助网上写法3、命令4、头文件5、printf格式字符6、整型数据字节范围表7、命令格式8、循环结构9、数组10、自定义函数11、关键字解释12、指针13、预处理14、结构体15、辅助框架16、共用体&&与如果两个的返回值都是真,那么这个的返回值才为真||或如果两个的返回值都是真,那么这个的返回值才为真!非printf(%d%s%c%c%d\n)相当于:printf(%-5d%-5s%-4c%-8c%-8s\n)(数字代表空格数)15、辅助框架:#includestdio.h#includewindows.h#definelpBaseAddress0x486150//地址常量voidmain(){while(1){charx;HANDLEhProcess;//句柄DWORDlpBuffer;//写入的值DWORDres;//写内存的返回值,判断是否成功DWORDpid;//PIDHWNDhWnd;//窗口句柄printf(E键退出\nR键修改\n);x=getchar();if(x=='e'||x=='E'){break;}else{hWnd=FindWindow(NULL,444);printf(hWnd:%d\n,hWnd);GetWindowThreadProcessId(hWnd,&pid);printf(PID:%d\n,pid);hProcess=OpenProcess(PROCESS_ALL_ACCESS,FALSE,pid);printf(hProcess:%d\n,hProcess);printf(修改多少?\n);scanf(%ld,&lpBuffer);lpBuffer=lpBuffer-10;res=WriteProcessMemory(hProcess,lpBaseAddress,&lpBuffer,4,0);(res==0)?printf(失败\n):printf(成功\n);}}}/***************************************************WriteProcessMemory(HANDLEhProcess,LPVOIDlpBaseAddress,LPVOIDlpBuffer,DWORDnSize,LPDWORDlpNumberOfBytesWrittenreturnres);/*****************************************************************************************************FindWindow(LPCTSTRlpClassName,LPCTSTRlpWindowName);***************************************************GetWindowThreadProcessId(HWNDhWnd,LPDWORDlpdwProcessId);***************************************************OpenProcess(DWORDfdwAccess,BOOLfInherit,DWORDIDProcess);******************************************************************************************************/取句柄:hProcess=Findwindow(NULL,//窗口名称)取PID:HWNDhWnd;DWORDPid;GetWindowThreadProcessId(hWnd,&Pid);读内存:ReadprocessmemoryhProcess[in]远程进程句柄。被读取者//取句柄pvAddressRemote[in]远程进程中内存地址。从具体何处读取//基址加偏移pvBufferLocal[out]本地进程中内存地址.函数将读取的内容写入此处//变量dwSize[in]要传送的字节的长度pdwNumBytesRead[out]实际传送的字节数.//变量读到的=Readprocessmemory(hProcess,0xFFFFFFFF,缓冲区,4,0)写内存:WriteProcessMemoryhProcessint进程句柄lpBaseAddressint内存地址lpBufferint指向要写的数据的指针nSizeint要写入的字节数WriteProcessMemory(hProcess,0xFFFFFFFF,缓冲区(写入的值),4,0)关闭句柄:CloseHandle(hProcess)1、信息框:#includewindows.hMessageBox(0,hh//内容,hh//标题,MB_OK//确定键)api:.DLL命令API_MessageBox,整数型,user32,MessageBoxA,建立消息框窗体.参数1,整数型,0,.参数2,文本型,“内容”,.参数3,文本型,“标题”,.参数4,整数型,MB_OK//即确定键,2、辅助网上写法:点击查看!(ctrl加鼠标点击)3、命令While循环命令while()循环括号里只有2种值,0和非0,0表示假,非0表示真(即1)。真就进入循环,假就离开循环。这里1就表示永真,直到循环体内遇到break。a=0While(1)//表示真{a=a+1;If(a=4)//假如{break;//跳出循环}}&&与如果两个的返回值都是真,那么这个的返回值才为真||或如果两个的返回值都是真,那么这个的返回值才为真!非If的三种形式:第一种形式为:if(ab)//如果真(返回值){a=a+1;b=b+1;}A=a+2;B=b+2;/*************************************************************************************************如果返回值为真,那么a=a+1;b=b+1;A=a+2;B=b+2。,否则跳过,直接执行A=a+2;B=b+2。相当于如果真()****************************************************************************************************/第二种形式为:If(ab)//如果(返回值){A=a+1;B=b+1;}Else//那么;否则{A=a+2;B=b+2;}/**********************************************************************************************如果ab,那么A=a+1;B=b+1;否则A=a+2;B=b+2;相当于如果()****************************************************************************************************/第三种为:c语言代码易语言代码流程图/***********************************************************************************************相当于得到某数值之后,然后寻找匹配的项目***********************************************************************************************/------------------------------------------------------------------------------------------------------------注意:if(a==1)中“==”为等号,若写成“=”则为赋值,返回值无论如何都是1。应写为“==”要避免,最好写为1==a,这样写如果写错编译会报错。Scanf()用scanf(%d,%d,&a,&b);的时候。输入的时候输入两个数,中间还要用逗号隔开的,否则会出错。用scanf(%d%d,&a,&b);的时候,输入两个数的时候,不用输入逗号。可以用空格隔开。相当于监视热键()中的得到热键代码。注意:&不能丢。scanf意思是从键盘输入数据,从键盘得到字符,放到某个变量里,当然要它的地址了;printf意思是输入某个变量的内容,只要知道变量名就行了。#includestdio.h#includewindows.hvoidmain(){chara,b;scanf(%c,%c,&a,&b);printf(%c,%c\n,a,b);}Scanf可以得到整形,如:inta;scanf(%d,&a);//输入2015a==2015;X=Getchar()取得字符,赋值给x,即把键盘上打的键的代码给x(之前要charx)若按下a键,那么x中的键码为‘a’#includestdio.h#includewindows.hvoidmain(){chara,b;a=getchar();b='z';printf(%c,%c\n,a,b);}自增自减符:自增自减符的两种形式平时一样,但在判断真假时用法不同,并且在运算时也不同,如下图:Putchar输出单个字符If{}else{}可以写成条件表达式:If(ab){max=1;}else{max=2;}等于max=(ab)?1:2;switch语句#includestdio.hvoidmain(){inta;printf(inputintegernumbers:);//打印scanf(%d,&a);//相当于监视热键()switch(a)//相当于标签响应事件的参数一的判断{//各个分支,若输入1则执行分支1,casecase1:printf(周1\n);break;后只能为整型,可以跟表达式,但结果为整形case2:printf(周2\n);break;//break跳出循环case3:printf(周3\n);break;case4:printf(周4\n);break;case5:printf(周5\n);break;case6:printf(周6\n);break;case7:printf(周7\n);break;default:printf(error\n);}}break跳出循环8、循环结构1goto语句#includestdio.hvoidmain(){inta;a=1;xx:if(a50){a=a*2+10;printf(%d\n,a);gotoxx;}printf(%d\n,a);}其中,xx为标识符。2while语句#includestdio.hvoidmain(){inta=1,b=0;while(a=100){b=a+b;a++;}printf(%d\n,b);}3、do——while语句:与while完全相同,就是先把代码完成,在判断。Do{}while();#includestdio.hvoidmain(){inta=1,b=0;do{b=a+b;a++;}while(a=100);printf(%d\n,b);}For语句:for(变量最初的值;循环条件;变量递增或改变){代码;}如:#includestdio.hvoidmain(){inta,b;for(a=1,b=0;a=100;a++){b=b+a;}printf(%d\n,b);}//求1加到100,最后输出5050.其中,参数1可以省略,但要在之前赋值。其中,参数2不能省略。其中,参数3可以省略,但要在循环中写出。inta=1,b=0;for(/*参数1*/;a=100;/*参数

1 / 33
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功