c语言复习笔记 |
您所在的位置:网站首页 › c语言putw › c语言复习笔记 |
根据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 ![]()
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 |