C语言
这些知识点都是在听郝斌老师课时写的笔记,也为了日后方便自己查看~
柯糖
顺风时多些小心,逆风时多些耐心
展开
-
内存(未完......)
内存一、 内存的基本概念二、 软件运行与内存关系 (垃圾数据)一、 内存的基本概念 1、内存是用来存储数据的设备。它的存储速度介于寄存器和硬盘之间。 2、内存是CPU唯一可以访问的大容量的存储设备! 所以硬盘中的程序和数据必须调入内存后方可被CPU执行! 切记: CPU不能直接处理硬盘中的数据! 3、内存的问题时软件开发中最核心的问题! 如: 内存的分配,内存的释放,内存什么时候分配,内存什么时候释放,由谁来分原创 2020-06-10 21:53:15 · 152 阅读 · 0 评论 -
C 语言中常用库函数
C 中常用库函数数学函数字符函数字符串函数输入/输出函数动态分配函数和随机函数图形功能函数其他函数数学函数使用时要求在源文件中包含头文件math.h字符函数使用时要求在源文件中包含头文件ctype.h字符串函数使用时要求在源文件中包含头文件 string.h输入/输出函数使用时要求在源文件中包含头文件 stdio.h动态分配函数和随机函数使用时要求在源文件中包含头文件 stdlib.h使用 randomize 函数时,在源文件要包含头文件 time.h图形功能函数使用时要原创 2020-06-01 12:51:36 · 464 阅读 · 0 评论 -
【专题】——递归
递归定义:一个函数自己直接或间接调用自己递归需要满足三个条件:1、递归必须有一个明确的终止条件2、该函数所处理的数据规模必须在递减3、这个转化必须是可解的循环和递归:所有的循环都可以用递归实现所有的递归不一定能用循环实现优缺点:递归:易于理解速度慢存储空间大循环:不易理解速度快存储空间小递归函数的执行【重点】:当在一个函数的运行期间调用另一个函数时,在运...原创 2020-05-07 22:35:01 · 292 阅读 · 0 评论 -
指针和结构体【重点】
指针和结构体【重点】为什么需要结构体:解决表示一些复杂的事物,而普通的基本类型无法满足实际要求什么叫结构体把一些基本类型整合在一起形成的一个新的复合数据类型如何定义结构体(3种方式)// 第一种方式 推荐第一种方式 struct Student{ int age; float score; char sex; } // 第二种方式 在定义的同时直接写变量名 ...原创 2020-04-27 18:40:11 · 174 阅读 · 0 评论 -
指针经典程序--互换两个数字
指针经典程序——互换两个数字/* Date: 20/04/17 12:28 Description: 指针经典程序 ——互换两个数字 */# include <stdio.h>// 前置声明 void huhuan_1(int ,int);void huhuan_2(int * ,int *);void huhuan_3 (int * ,int *);//主程序...原创 2020-04-27 18:27:20 · 187 阅读 · 0 评论 -
指针和数组
指针和数组指针和一维数组一维数组名 一维数组名是个指针常量 它存放的是一维数组第一个元素的地址下标和指针的关系如果 p是个指针变量,则 p[i] 永远等价于 *(p+i)确定一个一维数组需要几个参数【如果一个函数要处理一个一维数组,则需要接收该数组的哪些信息】需要两个参数: 数组第一个元素的地址(一定要定义成指针类型) 数组的长度指针变量...原创 2020-04-27 18:23:56 · 154 阅读 · 0 评论 -
基本类型指针
指针【C语言第二个难点】指针的重要性:C语言的灵魂 表示一些复杂的数据结构 快速的传递数据,减少了内存的耗用 使函数返回一个以上的值 能直接访问硬件 能够方便的处理字符串 是理解面向对象语言中引用的基础指针的定义地址: 内存单元的编号 从零开始的非负整数 范围:4G 【0--4G-1】指针和指针变量1、指针就是地址,地址就是...原创 2020-04-27 18:14:59 · 529 阅读 · 0 评论 -
动态内存分配【重点】
动态内存分配【重点难点】传统数组的缺点:1、数组长度必须事先制定,且只能是常数,不能是变量例子:int a[5]; //OK int len = 5; int a[len]; //error2、传统形式定义的数组,该数组的内存程序员无法手动释放在一个函数运行期间,系统为该函数中数组所分配的空间会一直存在,直到该函数运行完毕时,数组的空间才会被系统释放3、数组的长度一...原创 2020-04-23 21:04:50 · 575 阅读 · 0 评论 -
函数【重点】
函数【C语言的第二个重点】为什么需要函数避免了重复性操作、避免大量重复性代码 、有利于程序的模块化什么叫函数逻辑上: 能够完成特定功能的独立的代码块物理上: 能够接收数据[当然也可以不接收数据]能够对接收的数据进行处理能够将数据处理的结果返回[当然也可以不返回任何值]总结: 函数是个工具,它是为了解决大量类似问题而设计的函数可以当作一个黑匣子如何定义函数 函数的返回...原创 2020-04-23 20:41:48 · 124 阅读 · 0 评论 -
流程控制【重点】
流程控制【第一个重点】程序代码执行的顺序顺序执行选择执行(具体见 分支用法)定义: 某些代码可能执行,也可能不执行,有选择地执行某些代码分类: if 、 switch、 break、 continue循环执行 (具体见 循环用法)定义:某些代码被重复执行分类:for、 while、 do...while流程控制举例:【要能看懂】1、# inc...原创 2020-04-23 20:23:41 · 175 阅读 · 0 评论 -
一个指针变量占几个字节问题
一个指针变量到底占几个字节【非重点】预备知识: sizeof(数据类型) 功能:返回值就是该数组类型所占的字节数 例子: sizeof(int) = 4 sizeof(char) = 1 sizeof (double) = 8 sizeof(变量名)功能:返回值就是该变量所占的字节数假设p指向char类型(1个字节)假设q指向int类型(4...原创 2020-04-20 13:59:40 · 1634 阅读 · 0 评论 -
关于变量的作用域和存储方式
变量的作用域和存储方式:按作用域分:全局变量在所有函数外部定义的变量叫全局变量全局变量适用范围: 从定义位置开始到整个程序结束局部变量在一个函数内部定义的变量或者函数的形参,统称为局部变量 void f (int i) { int j = 20; }i 和j 都是局部变量局部变量使用范围: 只能在本函数内部使用/* Date: 20/04/15 12:...原创 2020-04-15 14:02:54 · 123 阅读 · 0 评论 -
关于数组的一些知识点
数组为什么需要数组:1、为了解决大量同类型数据的存储和使用2、为了模拟现实世界数组的分类:一维数组怎样定义一维数组:为n个变量连续分配空间所有的变量数据类型必须相同所有变量所占的字节大小必须相同例子: int a[5]有关一维数组的操作:初始化 完全初始化 int a[5] = {1,2,3,4,5} 不完全初始化,未被初始化的元素自...原创 2020-04-15 13:46:50 · 218 阅读 · 0 评论 -
关于浮点数的存储所带来的问题
浮点数的存储所带来的问题float 和 double都不能保证可以把所有的实数都准确的保存在计算机中,存储的是一个近似值例子: float i = 99.9;printf(“%f\n”,i);最终在Devc++6.0中的输出结果是:99.900002因为浮点数无法准确存储,所以就衍生出两个变成问题:举例:1、有一个浮点型变量x,如何判断x的值是否为0 if (|x-0.000...原创 2020-04-13 21:08:48 · 459 阅读 · 0 评论 -
学习一些小算法的心得
如何看懂一个程序:1、流程2、每个语句的功能3、试数如何学习一些小算法的程序:尝试自己去编程解决,大部分人都无法自己解决如果解决不了,就看答案关键是要把答案看懂,这个要花很大的精力,也是我们学习的重点看懂之后尝试自己修改程序,并且知道修改之后程序的不同输出结果的含义照着答案敲调试错误不看答案,自己独立把答案敲出来(郝斌老师的建议)...原创 2020-04-10 23:28:19 · 176 阅读 · 0 评论 -
试数的详细步骤
不要问为什么,不要省略某一步主程序:int i;float sum=0; for (i=1;i<=100;++i) { sum = sum + 1.0/i; }试数:1-> i=1 1<=100 成立 sum=0+1.0/1=1.00 ++i i = 22-> i=2 2<=100 成立 ...原创 2020-04-10 23:24:35 · 458 阅读 · 0 评论 -
循环for、while、do...while的用法
先了解基本语法知识,然后再把程序看懂(试数是个很好的选择),用的多了自然就会了循环执行某些代码被重复执行for1、格式:for(1; 2; 3) 语句A; 2、执行的流程【重点】执行顺序1-2(1和2成立后)-A-3(一次循环结束)-2-A-3单个for循环的使用多个for循环的使用1、 for(1; 2; 3) //1行 for(4; ...原创 2020-04-10 23:15:56 · 503 阅读 · 0 评论 -
分支 if、switch、break、continue 的用法
分支结构分类:if语句1、if最简单的用法格式: if (表达式) 语句功能: 如果表达式为真,语句执行 如果表达式为假,语句不执行2、if的范围问题(1)if (表达式) 语句A; 语句B;解释:if默认只能控制语句A的执行或不执行,if无法控制语句B的执行或不执行,或者讲,语句B一定会执行...原创 2020-04-10 22:58:12 · 2064 阅读 · 0 评论 -
进制、补码
进制1、什么叫n进制逢n进一2、把r进制转化为十进制(10110)2 = 0 * 20 + 1 * 21 + 1 * 22 + 1 * 23 + 1 * 243、十进制转化为r进制除r取余,余数倒序排列4、不同进制所代表的数值之间的关系十进制的 3981 转化成 十六进制的 F8D所代表的本质上都是同一个数5、小数的二进制6、补码...原创 2020-04-10 22:36:14 · 400 阅读 · 0 评论 -
有关数据类型和其取值范围
数据类型1、数据类型:基本类型数据:整数(整型--int--4、短整型--short int--2、长整型--long int--8)浮点数【实数】(单精度浮点数--float--4、双精度浮点数—double--8)字符(char--1)复合类型数据:结构体枚举共用体1、整数类型:short int、int、long int、long long int2、浮点数类型:fl...原创 2020-04-08 23:11:07 · 1723 阅读 · 0 评论 -
基本输入输出函数——printf、scanf 的用法
基本的输入输出函数printf( ) 用法:将变量的内容输出到显示器上四种用法:1、printf(“字符串” );2、printf(“输出控制符”,输出参数);3、printf(“输出控制符 输出控制符...”,输出参数1,输出参数2...) //输出控制符要和输出参数的个数一一对应4、printf(“输出控制符 非输出控制符”,输出参数)输出控制符包含如下: %d ...原创 2020-04-08 22:41:40 · 1984 阅读 · 0 评论 -
运算符和表达式 (待补充)
运算符和表达式不含有分号的是表达式,含有分号的是语句表达式:用运算符和括号将操作数连接起来的式子1、算术运算符: + - * /(除) %(取余数) 两个数都是int,则商也是int; 被除数和除数只要有一个是浮点型数据,则商也是浮点型,不截取小数部分 取余的运算对象必须是整数2、关系运算符:输出逻辑值(真假) > >= &l...原创 2020-04-08 22:35:03 · 174 阅读 · 0 评论 -
基本编程知识
C语言:面向过程 C++、JAVA:面向对象优点:代码量小、速度快、功能强大缺点:危险性高、开发周期长、可移植性不强32个关键字:auto break case char constcontinue default do double elseenum return fl...原创 2020-04-08 22:21:15 · 4608 阅读 · 0 评论