c语言复习笔记

您所在的位置:网站首页 c语言putw c语言复习笔记

c语言复习笔记

#c语言复习笔记| 来源: 网络整理| 查看: 265

根据coder-pig(http://blog.csdn.net/coder_pig)的博客学习整理,感谢!

基础知识

1.C语言程序的转换过程

注解:①当我们在编译器上把代码写好,此时的文件是Hello.c,   .c是C语言程序源代码的后缀,此时的程序叫源程序!

         ②当程序通过编译器进行编译时,此时产生一个目标程序(二进制的代码文件)

         ③将目标程序和库文件链接成机器码文件,就是exe可执行程序!

         ④点击运行,输出结果!

2.学习路线图:

关键字(保留字)

①何为关键字:C语言中具有特殊含义的英文单词~通常用于构成语句,存储数据,定义数据类型等

②C语言的32个关键字参照图,不用记!等用到了再去了解!

变量的使用:

一个简单的 int a = 123;其实暗地里执行了以下操作

①int a:在内存中开辟了四个字节的内存空间,并且为这个空间起了个名字,叫做a;

②后面的=123,这一步完成的是变量的初始化,就是通过a这个变量名,往4个字节的内存中放入123这个数据

小提示;①一个好的建议是,当我们定义一个变量时,对其进行初始化,可以有效的避免空指针问题的出现

             ②你可以通过&a获得存放123这个数据的内存地址的值!

算术运算符

 

4.2 关系运算符

 

4.3逻辑运算符

4.4 赋值运算符

4.5 条件表达式

4.6 逗号表达式:

4.7 长度测试运算符

sizeof:通常用来测试某个数据类型所占的内存空间大小

使用示例代码:

[cpp]  view plain copy #include      int main()     {         int a = 1;         float b = 1.1;         char c = 'c';         printf("%d,%d,%d\n",sizeof(a),sizeof(b),sizeof(c));         return 0;     }     该代码测试的是int,float,char类型在本机所占的字节数

4.8 运算符的优先级

口诀: 括号最大 > ! > 算数运算符 >关系运算符>逻辑与或>赋值运算符

基础语法与结构化程序设计

学习路线图:

正文:

1.字符输入/输出函数

2.格式输入/输出函数

跟前面的单个字符的输入输出不同,当我们用到printf()和scanf()两个函数的时候就需要,

将头文件包括到源文件中,#include 这个就是标准输入输出的的缩写,h是header缩写

可以写成:#include "stdio.h"或者#include 两种方式,看个人喜欢

格式输出函数printf()

何为格式输出:就是按自己想要输出的标准输出,如:保留2位小数

ps:修饰符和格式符较多,刚开始的时候不容易掌握,推荐自己编写程序来验证与理解他们的作用,写多了,就会了!

格式输入函数:scanf()

格式输入,同上,不过是从键盘上将数据传送到某个内存空间中!

scanf()的完整用法:

看图的话或者大家还有些疑惑,这里就演示下scanf的用法吧

scanf使用代码演示:

[cpp]  view plain copy 在CODE上查看代码片 派生到我的代码片 /*   该代码演示的scanf的用法,特别注意第三点,别在   scanf里乱添加空格,逗号等符号,不然输入的时候   就需要把他们按格式写上,不然会造成莫名奇妙的问题   */     #include      int main()     {         int a,b,c;         //1.正常的scanf的用法         scanf("%d%d%d",&a,&b,&c);         printf("a = %d b = %d c = %d\n",a,b,c);         //2.使用*抑制符跳过输入的某个值         scanf("%3d%*2d%2d%3d",&a,&b,&c);         printf("a = %d b = %d c = %d\n",a,b,c);         //3.最好不要在scanf里面写逗号和空格之类的,不然输入         //输入的时候必须把这些都写上         scanf("%d,%d,%d",&a,&b,&c);         printf("a = %d b = %d c = %d\n",a,b,c);         return 0;     }     运行结果:

3.三种基本的程序结构: 顺序结构与判断结构if的使用:

判断结构switch的用法:

3.循环结构:

4.流程跳转控制语句:

break语句:只能用在循环语句与switch(开关)中,用于跳出switch或者跳出循环;而在多层循环中,仅仅跳出一层循环!

continue语句:跳过循环体剩下的部分,直接进入下一次循环。

C语言中的数组

学习路线图

1.一维数组与二维数组:

2.字符串与字符串数组

小结:

①数组是用来存储数据类型相同的变量的有序集合,可以通过下标访问数组中的元素

②一维数组的定义,初始化与引用

③二维数组用于存储表格数据,定义,初始化与引用

④区分字符串与字符串数组的区别,字符串是要用字符数组存储,最后还要加上一个'\0'

⑤字符数组的长度至少比字符串大一

⑥使用sizeof(数组名)/sizeof(数组元素的数据类型)求出字符数组的长度

⑦字符数组直接==比较的结果是比较地址

⑦使用string.h库提供的字符串操作函数:

strcpy(a,b) 将b的字符串复制到a中,会覆盖          strcat(a,b):将字符串b的内容拼接到a的后面

strcmp(a,b):将a,b两个字符串从左到右对每个字符,按照ascII码的值,进行比较;直到出现不同或者'\0',终止比较

                     如果内容一样,返回0;a 大于 b返回正整数 ; a 小于 b返回负整数

strlen(a):返回字符串的长度,不包括字符串的结束标志 '\0'

C语言中的指针 -- 灵魂 学习路线图:

指针概念,指针与一维数组与字符串:

指针与二维数组:

该知识点是指针的难点,其实要弄懂这里的话,我们只要把重心放到二维数组上,对二维数组进行彻底的理解!

step 1:二维数组是按行与列存储数据的;我们可以看成若干行 + 每行若干列的一维数组组成

int a[3][4] ={{1,2,3,4},{1,2,3,4},{1,2,3,4}};   可以看成三行,每行有四个一维数组

step 2:a代表二维数组首元素的地址,即&a[0],如果换行数组的第二,三行的话,只需要:a + 1,a+2这样;等于&a[1],&a[2]

step 3:我们可以把a[0]看做是指向a[0][0]的指针,那么a[0]+1则指向a[0][1],即此时的地址为&a[0][1]

ps: 这里的+1的1是数组元素所占的字节数,比如int a[]的话,那么这个+1代表的就是向后移动4个字节,指向的就是下一元素;

如果是+2的话就是后移8个字节,所以a[i][2] = a[i] + 2

step 4:通过前面一维数组的学习,我们可以知道 a[i] 与 *(a+i)等价

同样的,我们扩展到二维数组的情况  a[i][j] 与*(a+i)+j 和a[i]+j是等价的,都是表示a[i][j]的地址

而求a[i][j]的值:  *(a[i]+j)  与*(*(a+i)+j)都是可以的

注意:*a 与*(a+i)都不代表任何具体的数组元素,所以当你们引用他们的时候可能会引起错误哦!

①数组首地址a[0]: a   不可以直接引用!!!

②一维数组a[0]首元的地址(&a[0][0]):   a[0],*(a+0),*a;

③第一行的首地址: a + 1   同样不可以直接应用

④一维数组a[1]首元的地址(&a[1][1]):    a[1],*(a + 1)

⑤序号为2行4列元素a[2][4]的地址:a[2]+4,*(a+2)+4,a[2][4]

代码示例:

①指向数组元素:                                                            

    运行截图:

        

②指向数组

运行截图:

       

小结:

①指针的概念,指针变量,直接访问与间接访问

②指针的基本使用

③指针与一维数组

④指针与字符串

⑤指针与二维数组

C语言复杂数据类型 学习路线图:

本节正文

函数

ps:空函数就是什么都不做的函数,开发过程中不需要马上实现的,先写空函数!简单的空函数:void abc(){   }

结构体

共用体:

代码示例2:

建立一个共用体类型,当输入的时学生类型时,要求输入的是学生id,当输入的是老师类型的时候,要求输入老师职称

代码如下:

[cpp]  view plain copy #include    union type   {       int cid;  //班级       char title[20];  //职称    };      struct Person   {       char name[10];  //姓名       char sex;  //性别       int age;   //年龄       int flag;  //标志是老师还是学生        union type tp;   };      int main()   {       struct Person person[10];       int i;       int num;       char ch;       printf("请输入要录入的人数:\n");       scanf("%d",&num);       for(i = 0;i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3