基本信息
文件名称:各类编程语言介绍.pptx
文件大小:274.88 KB
总页数:60 页
更新时间:2025-05-27
总字数:约1.82万字
文档摘要

-1MoreProgrammingConcept

各类编程语言介绍

-2目录VariableandmemoryArrayvs.pointerMoreaboutforLoopC++stringI/OandFilehandlingOthertopics

-3Auto变量不可占太多memoryAuto变量就是没写static的Local变量Auto变量是在进入函数时才在STACK区安排存储器,在离开函数(return)时就还掉(改变StackPointer)STACK区一般不会很大(几拾KBytes)Auto变量用STACK区,所以太大的array不能用叫用函数时,returnaddress也会被推入STACK参数传递也是用STACK区C/C++推入参数时是先推入最后一个参数,这使得第一个参数会在堆栈的最上方,进入函数时,STACK中returnaddress之下就是第一个参数C/C++离开函数时,函数不负责拿掉STACK中的参数,那是叫用函数那个程序的责任!(与其它语言不同)

-4Auto变量占用STACK区memoryAuto变量就是没写static的Local变量CPUIPSPInstructionPointerStackPointer系统区系统区程序+静态dataHEAP堆积STACK

-5Static变量?Global变量都是static的变量Local变量就是在函数内的变量有补static修饰词则为static变量没有补static修饰词则为Auto变量static的变量在程序开始RUN之前就存在,且已经设好初值,程序结束后才会还掉所占存储器写了extern表示只是宣告,不是定义(define)Local变量就只能在该函数内存取Global变量则只要看得见它的任一函数都能存取它宣告之后就看得见,没宣告就定义则看作同时宣告了注意main()也是函数,没有特别伟大!

-6Global,StaticLocal,Auto变量#includestdio.hexternintx;/*只有宣告,还不知道位置在何处?*/intfa();intfb(){intans=0;return++ans;}intmain(){intkk=123;coutfa()=fa()fa()fa()kkendl;coutfb()=fb()fb()fb()endl;return0;/*0inmain()meansOK*/}intx,y;/*真的x在这,也可以写在另一个file中*/intfa(){/*…*}写了extern表示只是宣告,不是定义(define)

-7StaticGlobal变量#includestdio.h#defineBUFSIZE100staticcharbuf[BUFSIZE];staticintbufp=0;intgetch(){/*...*/}voidungetch(intc){/*...*/}参考KR课本4.6节也参考stack的push和pop写在同一独立file中,push和pop共享data

-8再谈StaticGlobal变量#includestdio.h#defineRAND_MAX65535staticunsignedlongseed=0;/*global*/intrand(){seed=seed*1103515245+12345;returnseed%(RAND_MAX+1);}voidsrand(intnewseed){seed=newseed;}参考KR课本4.6节Pseudorandomnumber

-9register变量,volatile变量