96SEO 2026-02-19 10:28 0
指针在C语言中可谓是有着举足轻重的存在初学C语言的我们在《指针》章节已经接触过了一些指针的知识知道了指针的概念

指针就是个变量用来存放地址地址唯一标识一块内存空间。
指针的大小是固定的4/8个字节32位平台/64位平台。
指针是有类型指针的类型决定了指针的-整数的步长指针解引用操作的时候的权限。
指针的运算。
指针的基础知识已经了解完毕那么在这一篇博客里我们将深入探讨指针的一些高级使用。
字符串abcdef的地址就是a所在地址那么abcdef[3]相当于
侧面印证了确实是把首字符地址存入了指针pstr中。
数组名就是首元素地址既然说字符指针存放的是首字符的地址那么试着用数组下标的方式访问字符指针指向的内容结果发现一样可以打印出来。
因此完全可以把常量字符串想象成一个数组然后用字符指针接收操作起来与数组一致。
修饰存放字符串的字符指针因为字符串是常量不允许被修改如果修改了程序会崩溃。
用相同的常量字符串去初始化不同的数组的时候就会开辟出不同的内存块str1和str2其实是各自创建了一个空间存放nash.因此它们的地址是不一致的。
str3
当用指针指向字符串时因为nash是常量字符串是不会被修改的那么既然不能被修改编译器就没必要保存多份只需要一份然后让指针都指向同一块内存即可因此地址值是一致的。
str4)printf(Yes);elseprintf(No);return
结果为No因为str3和str4本身的地址值是不一样的只是str3和str4指向的内容是一样的。
很多人直观的感受就是定义abcd然后将它们的地址都存入整型指针数组中。
如下
但是很少有人会这样使用的没有这种使用场景也没有人会这样使用这样写的没有任何意义。
使用指针数组维护多个数组模拟出一个二维数组因此操作也与而二维数组类似。
当然还有很多其他的应用场景但是由于篇幅有限这里就不再一一列举。
p2先和*结合说明p2是一个指针变量然后指着指向的是一个大小为10个整型的数组。
所以p是一个指针指向一个数组叫数组指针。
1、sizeof(数组名)这里的数组名表示整个数组计算的是整个数组的大小单位是字节。
由上图可以证明第一组和第二组1时都只是跳过四个字节即arr表示的是首元素地址。
而第三组可以发现arr和arr1之间跳过了40个字节即一整个数组的大小因此证明arr表示整个数组。
那么我们大胆猜测一下arr的类型是int*arr[0]的类型也是int*
既然看完了什么是数组指针那么做一道题来检测一下自己是否理解明白。
如果非要用指针接收数组也应该使用指针接收首元素地址而不是接收整个数组的地址。
这才是正确的访问姿势。
其实在一维数组传参过程中形参既可以写成数组的形式又可以写成指针的形式因为本质上这两种方式都是传递的是数组首元素地址是互等的。
那是因为能够写成数组形式完全是为了照顾初学者因为实参是一个数组形参也定义一个数组来接收这个数组这种方式更能够让初学者理解。
因此即使这么写本质也还是指针。
是一个指针指向元素为10的数组每个元素的类型是int*parr3
是一个数组数组有10个元素指向一个指针指针指向的内容是元素为5的数组每个元素的类型是int即是一个存放数组指针的数组。
当然parr3看不懂也不要着急这种形式是很少用到的只是作为拓展知识点了解即可。
二维数组传参函数形参的设计只能省略第一个[]的数字。
因为对一个二维数组可以不知道有多少行但是必须知道一行多少元素。
这样才方便运算。
sizeof(arr[0]);//一级指针p传给函数print(p,
Add引用函数返回ret1此时对pf2解引用在调用函数返回ret2对pf2直接调用函数返回ret3在pf2前面加很多解引用返回ret4
所以得出结论函数指针在调用所指向函数时可以不写*直接和函数名一样调用函数而*号在这里其实就只是一个摆设同样是为了照顾初学者的使用习惯所以才会导致当加了很多*号去解引用时得出来的结果依然是正确的结果。
对0进行强制类型转换转换成函数指针。
即将地址0当做存放函数指针的地址。
(*(
即上面的代码实在调用0地址处的函数这个函数没有参数返回值是void。
signal是一个函数它有两个参数整型int和函数指针类型void(*)(int)。
void
有没有办法将代码写成符合我们习惯的形式这样返回类型在前函数名在中间函数参数在后的void
void(*)(int))这样直接写是肯定不支持的但是可以通过typedef优化一下
对void(*)(int)重新起名为pfun_t这样写出来的代码就清楚多了。
如果觉得作者写的不错求给作者一个大大的点赞支持一下你们的支持是我更新的最大动力
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback