- 博客(18)
- 收藏
- 关注
原创 C++新手浅复习笔记
c++面向对象的三大特征为:封装,继承,多态。对象尤其对应的属性和行为,例如:人(对象)身高,体重(属性)吃喝玩乐(行为)。具有相同性质的对象,可以抽象为类。比如人类。
2024-06-02 18:14:02
784
原创 C++的基础笔记.c++
堆区是程序员进行操作的地方,在程序结束之前系统不会释放堆区的数据,使用new关键字或者是malloc关键字都可以在堆区开辟一片空间,使用delete释放空间,将其归还给系统。这是因为c指向test函数那块空间,在第一次调用test将10返回,然后把空间归还给操作系统,编译器将值进行了一次保留,当值输出之后便不再保留,输出其地址。要注意的是,当有多个参数时,若一处有默认值,那么以它为开始从左到右直到结束的参数都必须有默认参数。在c++中有四块区域,分别是堆区,栈区,代码区,全局区。
2024-05-12 15:03:29
280
1
原创 程序环境,预处理和宏
在标准c语言的任何实现中,存在两个不同的环境1.翻译环境:源代码->机器指令(二进制)2.执行环境用于实际执行代码。在windows环境:源文件->编译器->目标文件->链接器<-链接库。
2024-04-29 00:30:59
157
原创 C语言笔记(结构体和位段).C语言
在不对齐的情况下,这段结构体所占的字节为9,电脑一次性访问8个字节,其中除了第一个以外都是无用数据,消耗了电脑的性能也没做什么事情。这个代码的意思为: 创建了一个类型为"node"的结构体,其中的成员是一个字符数组和一个结构体指针。3.当一个结构体中有两位段,第二个位段大,无法存放在第一个位段剩余的空间中时,是对剩下空间填满后再开辟空间还是直接开辟空间是没有定义的。1.平台原因:不是所有的硬件平台都可以访问任意地址上的任意数据,某些硬件平台只能在某些地址处取特定类型的地址,否则会有硬件异常。
2024-04-25 15:42:39
172
1
原创 c语言部分函数笔记
需要注意的点与strcat函数类似,是溢出问题,当目标数组(第一个数组)中放不下源头数组(第二个数组)时,会报错。有时候我们想对arr数组中的数据再次赋值到arr数组中,在vs2022的环境中,可以继续使用memcpy函数,在其他版本中不一定。当第一个数组中的对应字符值大于第二个数组中的对应字符值时,返回1,全部相等返回0,第一个数组中的对应字符值小于第二个数组中的对应字符值时,返回-1.这个函数一共需要三个参数,第一个参数是数据目的地地址,第二个参数是数据源头地址,第三个参数是传输的字节大小。
2024-04-20 22:53:43
577
原创 C语言笔记关于指针
值得注意的是,这个赋值操作不是将字符串abcd存放到char*类型的p中,而是把这个字符串的首元素地址“a”的地址给p,用%s就可以将字符串abcd全部打印。数组指针的类型为int(*)[3],int表示指向数组里的元素类型为int ,3表示数组中的元素个数。定义方式为:(返回值类型)(*(指针名))(参数类型1,参数类型2)=(函数名)(void(*)())0是对0进行(void(*)())类型的强制类型转换。函数指针数组的指针:(类型)(*(*名字)[大小]))(参数类型)char*q=“abcd”;
2024-04-18 17:21:02
313
1
原创 c语言笔记
所以为了表示0.5,其中引入了中间值的概念,当转换类型为float类型时,中间值为127,转换类型为double类型时,中间值为1023。在函数中数组传参时,因为传递的是首地址,所以在调试中只能看到第一个元素,要看其他元素的话就要(首地址,要看元素的数量)。对于32位浮点数来说,最高位的符号位S,然后是8位的指数E,最后是23位M为有效数字。其中:S表示符号位,M表示有效数字,取值范围在(2>M>=1),E表示指数位。对于64位来说,精度更大即,E的有效位数为11位,M的有效数为52。
2024-04-13 00:18:48
861
1
原创 不用担心吃什么了,c语言
/先分配存放指针的数组得用malloc,我一般想吃的菜也就5个吧。printf("想吃点什么?此代码可以选五个想吃的菜,再也不用纠结吃什么了。所需要的头文件如下所示。
2024-04-06 11:54:38
289
1
原创 自家笔记c语言
c语言标准规定:允许指向数组元素的指针与指向数组最后一个元素后边的内存作比较,但不允许与第一个元素前的地址做比较。打印结构体中的结构体变量时方法为printf("%(需要的类型)",外结构体.内结构体.结构体变量名);release(用户使用,不可调试):发布版本,进行过各种优化,使得程序在代码和运行速度上是最优的。指针类型的字节大小与环境有关,当环境是32位时,其字节大小为4,环境为64位时大小则为8.*pa表示pa是指针。结构体大括号外边的是结构体变量,也可以直接声明,假如有个peo的结构体。
2024-04-04 17:13:18
199
1
原创 c语言扫雷第一版(无连锁).C语言
printf(" 1.游戏开始 \n");printf("请输入确定的雷的位置,如果没有请输入0 0\n");printf("排雷成功游戏结束\n");printf("雷已布置好,请开始排雷\n");printf("很抱歉,排雷失败\n");printf("请输入要排查的坐标\n");default:printf("输入错误,请重新输入\n");case 1:printf("扫雷开始\n");printf("请输入:\n");
2024-03-31 15:21:59
565
1
原创 C语言井字棋.C语言
printf("玩家胜利\n");printf("电脑胜利\n");printf("玩家胜利\n");printf("电脑胜利\n");printf("玩家胜利\n");printf("电脑胜利\n");printf("玩家胜利\n");printf("电脑胜利\n");将需要的头文件都包入自己创建的game.h中,方便创建静态库。printf("输入有误,重新输入\n");printf("玩家输入\n");printf("电脑输入\n");printf("平局,游戏结束\n");
2024-03-25 19:51:35
694
原创 自家笔记.C语言
在c语言中main函数也是被一个函数调用的(_tmain CRTStart up())但这个函数也被另一个函数调用着(mainCRTStart up())当函数调用(递归)太多时候也会出现栈溢出情况。其他的目前尚未了解太多,可知程序员写代码时会有将部分代码放进静态区中以减少发生栈溢出的可能。3.arr表示数组的首元素地址,主函数中sizeof(arr)表示数组长度而不是类型长度。例如:return(str+1)的好处>return(++str)当递归没有写终止条件时会出现栈溢出的情况。栈区,堆区,静态区。
2024-03-25 19:47:17
393
原创 新手c的普通知识点1.C语言
要理解在第一个循环结束之后,因为没有对sum1进行静态变量的设置,sum1的值不再是最开始设定的1,所以要对sum1重新赋值1.代码i=j-1的重新赋值要理解更新阶乘和的次数会随着i的减小而减小。1是成功跳出“查找成功"break出循环,2是失败跳出,我们用的是折半查找,它的原理是将不符合的数字跳过比较,一次跳整体的一半。这个代码中我们用到了sizeof,这个是用来求长度的,sizeof(arr)的值是数组arr的长度,sizeof(arr[0])的值是一个数组元素的长度,k的值便是数组元素的个数。
2024-03-11 21:33:15
894
原创 新手c的特殊知识点 C语言
这是因为while循环遇到continue时,直接会跳到循环括号内判断i值,不会走到输出后边的i++。while 循环改进方式为:将i值修改成0,i++放在 if 前即可。在这两段代码中,for循环的最终结果如下。for 循环因为括号内部有i++条件所以不受影响。while循环则是陷入死循环,结果如下所示。
2024-03-09 13:38:52
471
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人