C语言学习大纲-郝斌(讲解)_第1页
C语言学习大纲-郝斌(讲解)_第2页
C语言学习大纲-郝斌(讲解)_第3页
C语言学习大纲-郝斌(讲解)_第4页
C语言学习大纲-郝斌(讲解)_第5页
已阅读5页,还剩80页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

代码量小速度快功能强盛强32个要点词:(有系统定义,不可以重做其余定义)tosterreturndunionvoidvolatilewhilec语言简介、基本编程知识据种类讲、运算符和表达式第四讲、流程控制(所有语言都相同的)第五讲、函数(表现出头向过程和面向对象的差异)第六第七讲、指针(c语言的灵魂)第八讲、变量的作用域和储存方式、扩展数据种类动向内存分派(java、数据结构必学)—float变量的实质是内存中一段储存空间初始化就是赋值的意思--4字节变量名=inti,j;i=j=5;等价于是逢几进一intj;intj;inti,inti,j=3;j;j;j;j;i=5;j=5;机只辨别二进制使用的是十进制为了实质需要我们又成立了八进制和十六进制282049D为十进制数2049,也记为(2049)一或或传统写法科学计数法前面加0x或0X,是数字0加x符用单引号括起来引号括起来AA"代表了'A''\0'的组合看懂】字节就是储存数据的单位,而且是硬件所能接见的最小单位ASCII是使用哪个整数值去表示'A'--65'B'--66'a'--97'b'--98的输入和输出函数的用法printf()----(要点讲)将变量的内容输出到显示器上printf("字符串\n")2.printf("输出控制符",输出参数);输出控制符和参数的个数一定一一对应4.printf("输出控制符非输出控制符",输出参数);输出控制符包括以下d--int(十进制)%ld--longint--float%lf--double--字符串码能够表示数据也能够表示指令功能:将从键盘输入的字符转变为输入控制符所规定格式的数据,而后存入已输入参数的值为地点的变量中。3.应当编写代码对用户的非法输入做适合的办理【非要点】符+-*/(除)%(取余数)除法的运算结果和运算对象的数据种类有关,两个数都是int,则商就是int,若商有小数,则截取小数部分;被除数和除数中只需有一个或两,则商也是浮点型,不截取小数部分。取余的运算对象一定是整数,结果是整除后的余数,其余数的符号与被除数相等。关系运算符>>=<<=!=(不等于)==(等于)逻辑运算法!(非)&&(而且)||(或)真&&真真真&&假假假&&真假假&&假假C语言对真假的办理&&左侧的表达式为假右侧的表达式必定不会履行式必定不会履行赋值运算符=赋值运算符/=除后赋值*=乘后赋值%=取余数后赋值+=加后赋值优先级别算术>关系>逻辑>赋值流程控制(学习c语言的第一个要点)程序代码履行的次序2.流程控制的分类某些代码可履行,也可能不履行,有选择的履行某些代码ifif(表达式)假如表达式为真,履行语句假如表达式为假,语句不履行2.if的范围问题(要点)if(表达式)If(表达式){}行就一定把这些语句用{}括起来。假如想控制多个语句的履行或不执if(表达式1)A;5.C语言对真假的办理零表示6.if举例---求分数的等级7.if的常有问题分析于A;A;A;A;这样些语法不会错,但逻辑上有破绽A;这样写是不对的,正确的写法是:A;这样写语法不会错,但逻辑上是错误的则a与c比较a>c则输出aa<c则输出c不然b与c比较b>c则输出bb<c则输出c穿插在讲堂中的零落知识笔录:如何看懂一个程序,分三步:2.每个语句的功能数如何学习一些需要算法的程序【如何掌握一个程序】编程解决它但要意识到大多数人都是自己无法解决的,假如解决不了,这时不要灰心假如十五分钟还想不出来,此时我建议您就能够看答案了2.假如解决不了,就看答案要点是把答案看懂,这个要花很大的精力,也是我们学习的要点看懂一个程序要分三步:流程、每个语句的功能、试数3.看懂以后试试自己去改正程序,而且知道改正以后程序的不同输出结果的含义不建议看懂程序以后就立刻自己敲4.照着答案去敲5.调试错误6.不看答案,自己独立把答案敲出来7.假如程序实在无法完全理解,就把它背会,无法完全理解的程序极少极少几乎没有 (数据种类)(表达式)把表达式的值强迫变换为前面所履行的数据 (int)(4.5+2.2)最后值是6 (float)(5)最后值是5.0000000的问题bleprintf("%f\n",i);编程为何循环更新的变量不可以定义成浮点型保留在计算机中4.不同进制所代表的数值之间的关系所代表的本质都是同一个数的运算符知识+i-i++1.我们编程时应当尽量障蔽掉前自增和后自增的差异i++和++i独自成一个语句,不要把它作为一个完好的复合语句的一部分来使用If(A) (A,B,C,D)最后表达式的值是最后一项的值把电梯程序看懂就行啦某些代码会被重复履行for------要点、用到最多、最难行的流程【要点】 A; A;B;3)//13是一个语句4是第二个语句{A;}一个语句{A;是一个语句围问题while(表达式)for和while能够相互变换A;{A;}for的逻辑性更强,更不简单犯错,介绍多使用for3.举例法说,用多了自但是然就知道了{break用于循环是用来停止循环riii{ifbreak;//break固然是if内的语句,但break终止的倒是外面的for循环printf("嘿嘿!\n");//永久不会输出}那个循环那个循环riii{for(j=1;j<4;++j)printf("同志们好!\n");}近来的switch在多层switch嵌套中,break近来的switch{switch(y)//第二个switch{break;//停止的是第二个switch}}用于跳过本次循环余下的语句,转去判断能否需要下次循环{A;}{A;}问题。为了模拟现实世界2.数组的分类义一维数组有的变量数据种类一定相同所有变量所占的字节大小一定相等一维数组名代表数组第一个元素的地点数组的操作a不完好初始化,未被初始化的元素自动为零inta]={1,2,3};,所有元素是垃圾值inta[5]={0};其余状况下整体赋值都是错误的aariiib[i]=a[i];Inta;个元素的名字挨次是:a[0][0]a[1][0]a[2][0]a[i][j]表示第i+1行第j+1列的元素inta[3][4]={{1,2,3,4},{5,6,7,8},};inta[3][4]={};inti,j;//输出数组内容for(i=0;i<3;++i){for(j=0;j<4;++j)printf("\n");}对二维数组排序一行的最大值判断矩阵能否对称相乘n维数组能够当成每一个元素是n-1维数组的一维数组inta][4];辑上:能够达成特定功能的独立的代码单元够接受数据【自然也能够不接受数据】大批近似问题而设计的函数的返回值函数的名字(函数的形参列表){}1.函数定义的实质是详尽描绘函数之所以能够实现某个特定功能的详细方法,不向主调函数返回任何值f{return;//return只用来停止函数,不向被调函数返回任何值}intf(){return10;//第一:停止函数,第二:向主调函数返回10}3.函数返回值的种类也称为函数的种类,由于假如函数名前的返回值的种类同的话,则最后函数返回值的种类以函数名前的返回值种类为准intf()和函数履行体中的return表达式;中表达式的种类不{}有参函数和无参函数有返回值函数和无返回值函数数和用户自定义函数值传达函数和地点传达函数一般函数和主函数(main函数)一个程序一定有且只好有一个主函数主函数能够调用一般函数一般函数不可以调用主函数够相互调用主函数是程序的进口,也是程序的出口假如函数调用写在了函数定义的前面,则一定加函数前置申明1.告诉编译器马上可能出现的若干个字母代表的是一个函数2.告诉编译器马上可能出现的若干个字母所代表的函数的形参和返回值的详细状况3.函数申明是一个语句,末端一定加分号.对库函数的申明是经过#include<库函数所在的文件的名字.h>来实现形参和实参个数相同地点一一对应数据种类一定相互兼容如安在软件开发中合理的设计函数来解决实质问题能尽量独立,单调递归(能够拜见数递结构视频)在所有函数外面定义的变量叫全局变量全局变量使用范围:从定义地点开始到整个程序结束在一个函数内部定义的变量或许函数的形参都统称为局部变量voidf(inti){}I和j都属于局部变量使用范围:只好在本函数内部使用变量和局部变量命名矛盾的问题在一个函数内部假如定义的局部变量的名字和全局变量名相同时,局部变量会障蔽掉全局变量方式表示一些复杂的数据结构迅速传达数据,减少了内存的耗用【要点】函数返回一个以上的值【要点】理解面向对象语言中引用的基础指针就是地点,地点就是指针是内存单元的编号是寄存地点的变量指针和指针变量是两个不同的观点不相同指针的实质就是一个操作受限的非负整数//int*p;不表示定义了一个名字叫做*p的变量intj;p=&i;/*2.p不是i,i也不是p,更正确的说:改正p的值不影响i的值,改正i的值也不会影响3.假如一个指针变量指向了某个一般变量,则*指针变量就完好等同于一般变量假如p是个指针变量。而且p寄存了一般变量*p就完好等同于i或许说:在所有出现*p的地方都能够替代成i的地点,则p指向了一般变量ii,在所有出现i的地方都能够替代成p的值*p*p就是以p的内容为地点的变量*/j=*p;//等价于j=i;printf("i=%d,j=%d\n",i,j);经典指针程序_交换两个数:{intt;//假如要交换//假如要交换*pp和q的值,则tint则会犯错t=*p;//p是int*,*p是int*p=*q;}{b}*的含义2.定义指针变量int*p;.指针运算符该运算符放在已经定义好的指针变量的前面则*p表示以p的内容为地点的变量改正主调函数一般变量的值2.形参一定为指针变量函数中经过2.指针和数组指针和一维数组一维数组名一维数组名是个指针常量它寄存的是一维数组第一个元素的地点下标和指针p[i]永久等价于*p(p+i)确立一个一维数组需要几个参数【假如一个函数要办理一个一维数组,则需要接收该数组的哪些信息】素的地点指针变量不可以相加不可以相乘也不可以相除假如两个指针变量指向的是同一块连续空间中的不同储存单元,则这两个指针变量才能够相减。竟占几个字节【非要点】假定q指向int种类变量(4个字节)假定r指向double种类变量(8个字节)一个指针变量,不论它指向的变量占几个字节只占四个字节一个变量的地点是用该变量首字节的地点来表示3.指针和函数4.指针和结构体5.多级指针1.数组长度一定事现指定,且只好是常整数,不可以是变量2.传统形式定义的数组,该数组的内存程序员无法手动开释数组一旦定义,系统就为该数组分派的储存空间就会向来存在,除非数组所在的函数运转结束在一个函数运转时期,系统为该函数中数组所分派的空间会向来存在,直到该函数运转完成时,数组的空间才会被系统开释3.数组的长度不可以在函数运转的过程中动向的扩大或减小数组的长度一旦定义,其长度就不可以再改正统方式定义的数组不可以跨函数使用何需要动向内存分派内存传统数组也叫静态数组动向内存分派举例_动向数组的结构静态内存和动向内存的比较静态内存是有系统自动分派,由系统自动开释静态内存是在栈中分派的动向内存是由程序员手动分派,手动开释动向内存是在堆中分派的跨函数使用内存的问题实质要求。体合在一同形成的一个新的复合数据种类,这个叫做结构体。A函数中的数组将无法再被其余函数使用//第一种方式{};//第二种方式{//第三种方式{够整体赋初值假如定义完以后,则只好单个的赋初值如何拿出结构体变量中的每一个成员【要点】2.指针变量名—>成员名(第二种方式更常用)指针变量名—>成员名在计算机内部会被转变成(*指针变量名).成员名的方式来履行这两种方式是等价的{};{初始化不可以改成定义的同时赋初值pst->age=88;//第二种方式}pst算机内部会被变换成(*pst).age,没有什么为何,这就是—>的含义,这也是一种硬性规定e结构体变量和结构体变量指针作为函数参数传达的问题介绍使用结构体指针变量作为函数参数来传达运算结构体变量不可以相加,不可以相减,也不可以相互乘除但结构体变量能够相互赋值{动向结构寄存学生信息的结构体数组动向结构一个数组,寄存学生的信息序输出把一个事物所有可能的取值一一列举出来&————按位于&&逻辑与也叫而且&&

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论