C笔记整理
学习
王小龙泽
这个作者很懒,什么都没留下…
展开
-
学C笔记归纳 第十五篇——二维数组
16进制 0x28 转十进制,32+8 = 40,就是数组arr[10]所占内存,40个字节。二维数组越界一点还是会正常打印,多了打印也会错,敲代码时注意。数组越界 编译器是不会报错的,需要我们在写代码时自己注意。0x10 ,16个字节,16=4*4,一行4个元素。调试过程找不到错,重新捋一遍,发现少加了 逗号。,计算的是整个数组的大小,单位是字节。,这里的数组名表示整个数组,取出的是。, 我们可以将它当作一维数组的数组。数组传参时,传的是首元素的地址。原创 2023-12-17 11:20:58 · 227 阅读 · 1 评论 -
学C笔记归纳 第十四篇——一维数组
数组基础,一维数组原创 2023-12-15 10:14:18 · 100 阅读 · 0 评论 -
学C笔记归纳 第十三篇——函数3 递归(重点)
这个计算量就恐怖了,函数递归会不断占用栈区空间,如果是第60、100呢?因此,在解决问题时,我们的权衡利弊十分重要,如果写个函数,用递归轻松解决问题且不会占用太多内存空间,就用递归方式,反之非递归。递如果没有终止条件,就会不停的调用自身,每一次函数调用都会在栈区申请空间,最终导致栈溢出。归:递完,执行递语句之后的语句,......完了在执行3p的归、2p、1p。递归递归,先递递递...再归归归...;存在限制条件,当满足这个限制条件的时候,递归便不在继续;,程序调用自身的编程技巧称为 “递归”,应用广泛。原创 2023-12-13 17:04:18 · 418 阅读 · 0 评论 -
学C笔记归纳 第十二篇——函数2 声明和定义
include "add.h" 就是将头文件里内容全部拷贝,而头文件里是函数声明,包含头文件就相当于函数声明。这种方法还有商业价值:将add.c、add.h封装成静态库(.lib)+t 头文件 打包售卖,买家难以破解复刻。告诉编译器函数名、参数、返回类型,但函数具体存在由函数定义决定;函数声明一般出现在函数使用之前,要满足先声明后使用;,使用时包含其头文件即可,自己写的头文件用双引号。在main函数中调用add函数时,在之前“以add函数为例,一个项目,头文件内创建。,一个放main函数,一个放。原创 2023-12-12 15:45:38 · 107 阅读 · 1 评论 -
学C笔记归纳 第十一篇——函数 1
发现,虽然将 a, b 的值传给了 x,y,但他们地址不同。修改x和y的值不会影响a和b的值。函数命名都是有意义的,大多包含功能英文缩写,库函数的使用必须包含头文件。官方英文版:https://en.cppreference.com。官方中文版:https://zh.cppreference.com。实参传形参时,形参是实参的临时拷贝,对形参的修改不会影响实参。既然如此,我们直接将地址传入函数,再操作即可。{statement;} 函数体,函数的实现。ret_type 返回类型。原创 2023-12-11 13:05:29 · 103 阅读 · 1 评论 -
学C笔记归纳 第十篇——循环算法优化
循环求阶乘和二分法查找有序数组原创 2023-12-10 13:31:00 · 445 阅读 · 1 评论 -
学C笔记归纳 第九篇——分支循环语句3_for_while_do while(附九九乘法表解析和三种方式实现)
建议for循环语句的循环控制变量的取值采用“前闭后开”区间;// 10次循环:for(i = 0;4) C99语法才支持,C++可自由切换,也支持,如果报错就立马知道有这么一回事;尽量不要在for循环体内修改循环变量,防止for循环失去控制;do while相对于while,循环至少执行一次,不常用;被省略意味这部分恒成立;循环更常用,因为它的语句较为集中,便于阅读;和while循环一样注意 行循环内初始化列数。习惯 h原创 2023-12-09 18:57:05 · 266 阅读 · 0 评论 -
学C笔记归纳 第八篇——分支循环语句2_switch
最后一个 case语句5 可以不加 break ,但最好加上,防止后续添加 case 时忘加。break 可跳出 switch,没有 break 语句程序会往下继续执行 case语句。break 语句只能跳出自己所在的 switch语句;可见添加 default 语句可以处理异常case。switch语句 可嵌套使用;原创 2023-12-08 13:19:02 · 613 阅读 · 0 评论 -
学C笔记归纳 第七篇——分支循环语句1
生活中所有事物 都可 抽象成 这三种或其组合形成的语句。多分支:if——else if...else语句与其上最近的if语句匹配。练习:输出1~100以内的奇数。顺序结构、选择结构、循环结构。简单选择:if_else。原创 2023-12-07 17:10:23 · 23 阅读 · 1 评论 -
学C笔记归纳 第六篇——结构体
"语句是否繁杂,如果频繁操作是否过于冗杂?注意:程序运行"struct Students stu=..."时内存才分配空间存储数据。要注意printf函数里%s、%d 要与变量一一对应,否则编译器会凌乱,无法打印。结合前面学的指针,是否可以通过stu的内存地址直接访问其所储存的数据呢?通过对比发现通过指针访问数据显然是可行的。需要弄懂两个操作:存储数据和访问数据。原创 2023-12-06 17:31:41 · 25 阅读 · 1 评论 -
学c笔记归纳 第五篇——指针(抽象点)
概念:内存会划分一个个的内存单元,每个内存单元都有一个编号,1个内存单元的大小为:1字节(1byte),内存单元的编号就是它的地址,地址也被称为指针。地址无非也是个数值,也能被存起来,存放指针(地址)的变量就是指针变量;“08”取地址,取四个字节中第一个小字节:“0a”指针的本质就是地址,地址可以用指针变量存起来;指针变量也是变量,也分全局和局部。指针变量的大小取决于计算机位数;“%p”:以地址形式打印数据。原创 2023-12-05 11:40:00 · 345 阅读 · 0 评论 -
学C笔记归纳 第四篇——static关键字(重点)
局部变量进入作用域创建,出作用域销毁,static修饰局部变量时,局部变量出作用域也不销毁,本质上static修饰局部变量时,改变了变量的存储位置,程序结束时,静态变量才销毁。前面已经说过static修饰局部变量时会改变局部变量的存储位置到静态区,全局变量也存储在这个位置,编译器工作时是扫描本页面代码,如果不声明此变量,编译器就会报错未定义此变量,所以跨文件调用需声明。补充一个关键字extern,调用模块内其他文件定义的全局变量时需声明 ,将外部链接属性变为内部连接属性,使作用域变小,原创 2023-12-04 11:19:12 · 24 阅读 · 0 评论 -
学c笔记归纳 第三篇——常量
主要注意const修饰的。常量表示固定的数据。原创 2023-12-03 14:54:54 · 26 阅读 · 1 评论 -
学c笔记归纳 第二篇——基本数据类型
int 整型 4。long 长整型 4。long long 更长的整型 8。注意:C语言规定,sizeof(long) > sizeof(int).告诉编译器,变量是什么类型,不同类型占内存大小不同,试了半天,找不着旋转图片选项,先这样,留待日后修改。1字节=8比特,其余进制为1024。原创 2023-12-03 13:59:15 · 24 阅读 · 1 评论 -
小白学习C语言笔记归纳 第一篇
计算机的 “语言文字系统”有且只有由 ‘0’和‘1’构成,人很难记住各种‘0’与‘1’构成的指令,为此,我们将不同功能的 01指令 与 不同字母符号构成的指令 一一对应,编程语言由此而来。” ,我不是故意少打,是实实在在的忘打,所以,即使是固定的模版,也尽量自己敲一遍,学习阶段少玩梗,少用Ctrl+C。这种写法看似简洁,但是使用时,有些高级编译器编译会不通过,所以尽量使用标准写法,不纠结茴香豆,但感兴趣可以深挖,增加学习深度。这里函数名main是大家约定好的,默认的,改名编译器会报错。原创 2023-12-02 17:13:27 · 41 阅读 · 0 评论