自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 9.16日函数指针与函数指针数组以及指向函数指针数组的一些感悟

其实就是一个函数的参数是是另一个函数的函数名,也就是地址,并在特定的时候进行使用这个函数名。这种操作也叫做回调函数。也不能加减整数之类的。下面学一个库函数qsort 它可以实现实现所有类型的比较排序。比如之前写的那个 冒泡排序就比较笨,且只能排序整形类型的东西。void*指针类型就像是一个垃圾桶,可以接受任何类型的指针。其中void*指针类型是可以接受全部类型的地址的。qsort函数中间会回调一个自己写的比较函数。像这样提供了一个跳转的功能,也叫做转移表。这个是指向函数指针数组的指针。

2024-09-16 13:35:56 151

原创 9.12-9.13学习数组指针有感

---------------------------------------------------数组参数和指针参数。数组传参时一般传过去的都是数组名,也就是首元素的地址,除非你想把数组中的某个元素传到 函数中。------------------------------二维数组传参 ,数组传参,形参可以写成数组或者是指针,当然刚刚说的是一维数组的指针。其实传过去的形参只要能和实参表达的含义相同就可以 进行传参了。

2024-09-13 13:17:30 144

原创 9.11日听课观后感 指针数组与数组指针

指针的类型决定了,他们在访问地址时的权限,比如char *一次只能访问一个字节的内存 ,而int *一次性能访问 4个字节 double 为8个字节的内存。上面那个属于常量字符串 ,在创建时不会重复创建 ,因此其实p1 p2 这两个指针变量都是保存的这个常量字符串的首字符 a的地址 ,故他俩是相等的。为什么会出现上面的地址是相等的 而下面的字符串是不相等的呢?虽然可以模拟出二维数组的形式,但是本质上不是二维数组 ,因为二维数组在内存中i是连续存放的。主语为指针,实质上,数组指针的本质为指针。

2024-09-11 13:17:53 272

原创 9.5日 学习浮点数的存储方式有感

这个例子就可以说明浮点数和整形类型的数据存储方式是不一样的 因此当你以不同的方式打印的时候,获取数据的方式也不一样。float类型的中间值是127,double类型的的中间值是1023,都是为了方便存储E比如你如果想表示E为-1,当你以foloat类型存储时,实际上它存储的值是126。首先E为无符号整数,但是我们知道科学计数法中的e是可以出现负数的 ,浮点向左移动E为正数,小数点向右移动E为负数 ,-----------------------------如何把浮点数从内存取出来。

2024-09-05 13:46:03 427

原创 9.1-9.3课程总结

所以一个代码在不同环境下的实现方式不同,而且这也恰恰印证了release版本会对一些代码做一些优化,只不过在宏观上release版本的代码大小比较的小 实际上release版本是以什么规则对代码 进行优化我们也不得而知。这些都是C语言的内置整形 其中long类型比较特殊 ,在x86的环境中是访问4个字节大小,在x64环境中是访问八个字节。比如说计算 1-1 的时候 ,实际上在cpu上计算的时候计算的是1+(-1)-------------------------------大小端。

2024-09-03 01:31:28 480

原创 8.28写作业有感

汽水问题,自己尝试写一下,自己写的版本忽略了如果上次兑换剩下一个瓶子,以后的过程中这个瓶子也可以参与兑换 所以自己写的有欠考虑 ,这给自己提个醒,写代码要多思考。2.链接型错误(出现在链接期间,一般不是语法错误了,比如说你引用一个函数,但根本没有那个函数),可以ctrl +f查询一下。3.运行时错误(代码运行起来结果不是我们想要的)这种错误最麻烦,一般来说需要调试来解决。就可以去使用gets函数了 ,个人认为配合%s 也就是想要获取一个字符串时非常好用。指针数组,重点在数组,指存放指针的数组。

2024-08-29 00:08:58 225

原创 8.24日结构体学习心得

当打印时可以用 .点操作符 或者->操作符 前一个用来直接面对结构体对象的,后面在使用过结构体指针的时候方便一些 可以直接找到。另外结构体里也可以嵌套结构体 只要在初始化的时候写成{ {},下, }的形式即可。我认为结构体就是一种自定义的新的变量类型 名字都可以自定义。可以单独创建一个结构体类型 struct NAME{比如说学生 就可以有 名字 年龄 手机号 身高 体重。用来描述复杂的对象,即只用一种类型无法描述的对象。然后定义变量时也用这个类型定义就行。

2024-08-27 13:59:04 83

原创 2024.8.26调试学习有感

自动窗口 是自动将调试过程中的变量去监视 自动去监视,有点自作主张的感觉,还是自己监视比较方便。首先明白原理,1栈区内存的使用习惯是先使用高地址的空间,再使用低地址的空间。这个代码是调试中经常出错的代码,也是nice校招时的一道经典题目。debug是程序员的调试版本,release是程序员的发布版本。我们用的最多的还是监视 ,监视还是可以手动输入我们想观察的。2数组在内存中是连续的一片空间且是从低地址到高地址的。堆栈很好的反馈了谁调用的谁很好的显示了函数调用的逻辑。监视窗口是我们用的最多的。

2024-08-27 13:35:49 157

原创 8.25日 作业有感

想打印某个图案,可以去寻找里面潜在的规律,然后想办法利用自己所学的知识,循环也好,判断也好,去慢慢实现 这是打印图形问题的通用解法。见得多,练的多才能很牛逼 ,写代码不是一蹴而就的,而是在不断练习不断练习,不断总结的 ,需要有见识,需要有视野。我学到了 sizeof操作符的返回类型为size_t,为无符号整型类型 ,当表达式中有有符号整型类型时。这个式子的效果就是可以将n的二进制位的最右边的1变为0;在统计 二进制中1的个数中 ,我学到了 n&1 就可以用来判断最低位是1还是0。

2024-08-26 00:33:09 171

原创 8.21,学完操作符有感

这个在不同的编译器中输出的效果不同,虽然知道了优先性,可不知道操作数先算哪一个。算数转换说白了就是操作数中的其中一个去妥协另一个操作数,否则操作无法进行下去。所以说在以后的学习路程中尽量要写出来唯一计算路径的代码,还要保证一定的可读性。整型提升和算数转换 这两个都是针对于字节大小与int类型的4字节进行比较。操作符之间还有 优先性和结合性等特点,这俩都是针对于相邻的操作符而言。操作符的合理运用是写好一个表达式的基础。你的计算路径依然有可能不是唯一确定的。当你的优先性和结合性都唯一确定了。

2024-08-21 13:02:28 231

原创 8.18,二维数组笔记

个人理解:二维数组的第一个[]指的是这个数组里面的第几个一维数组,而第二个[]的意思就是找到的这个一维数组的第几个元素,实际上在内存的存储是连续的。超出了我们有效的范围,就不让我们使用了,越界时编译器可能不会报错,所以不能指望编译器去给我们报错,所以程序员在写数组的时候必须做好越界的检查。{{1,2,3},{2,3,4},{3,4,5}}个人认为这种写法是最形象的 记住了。数组的下标是有限制的,如果使用了小于0的下标,和大于n-1的下标,我们就称之为数组越界,传过去的首元素的地址。

2024-08-18 15:18:58 114

原创 8.16日简单函数递归的心得

在一些简单的递归作业中。我发现很多递归类型可以用公式来理解,就像高中学过的嵌套函数一样,一层套一层一层套一层的,只要可以列出来表达式,那么解决递归问题就好写的多,但也不是所有问题都能用递归去解决的。看见递归可以在脑子里把相关的公式列起来然后再去着手于写代码。比如斐波那契数列,明显用迭代的方法会简单的多。

2024-08-16 21:38:57 69

原创 2024年8.14日,做三子棋小游戏有感

5.想要做一个项目,必须是逐层分析,先把框架想好,比如你想实现一个功能 就要去提前想好这个功能怎么去实现,比如想要返回什么值,然后通过这个值去判断什么 抽丝剥茧,比如我想要判断哪个玩家胜利,我得有个返回值让他判断是否胜利吧,然后通过判断语句去判断。个人是相对满意的 使用的编译器是vs2022,作为一名准大学生,我觉得总结经验和写文字是对我技术的进步起着正反馈的,所以在今后的日子里我会经常写博客,以纪念我的以后奋斗的日子。虽然此时此刻我还没有踏入大学的殿堂,但是我始终认为,人应该始终在学习的过程。

2024-08-15 14:31:11 221

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除