html5做网站的总结,济南免费网站制作,专门做活动的网站,wordpress插件seo前言 前面的文章#xff0c;已经对指针的基础概念以及运用有了初步了解#xff0c;我们可以进一步探究指针比较深入的知识#xff0c;下文将主要介绍#xff1a;使用指针数组模拟二维数组、字符指针变量、数组指针、二维数组传参的本质、函数指针、typedef关键字等。
目录…前言 前面的文章已经对指针的基础概念以及运用有了初步了解我们可以进一步探究指针比较深入的知识下文将主要介绍使用指针数组模拟二维数组、字符指针变量、数组指针、二维数组传参的本质、函数指针、typedef关键字等。
目录
指针数组模拟二维数组 字符指针变量
数组指针
二维数组传参的本质
函数指针
typedef关键字 指针数组模拟二维数组 前文我们已经学习了指针数组即存放指针的数组而数组名就是一个指针那么是否能够通过指针数组完成对多个数组的存放并输出呢 字符指针变量 字符指针通常有两种情况第一种指向单个字符的第二种指向一个字符串的。前者很好理解指向单个字符那么这个指针中存放的就是这个字符的地址。那么指向一个字符串的呢它指向的地址是首字母的地址还是整个字符串的地址 本质上存放的是首元素的地址但是它的访问权限是到字符串的最后一个字符不会受到指针运算的影响。 下面给出一道经典题深入理解字符指针 在上图可以清楚的看到两个数组是不相同的很好理解两个数组哪怕元素完全一致数组名不同都不相同。 但是两个字符指针是相等的在c/c中会有一个专门的区域来存放字符串避免造成空间的浪费所以哪怕两个字符指针名不一样只要它们指向的字符串是一样的它们就相等。 数组指针 数组指针即指向数组的指针前文我们已经说过数组名即是首元素的地址要想取整个数组的地址应该用数组名 二维数组传参的本质 前文我们已经学过一维数组传参的本质是一个地址这也就是在传参时数组大小为什么可以被省略的原因那么二维数组在传参时是否也一样呢 答案是肯定的传的就是首元素的地址也就是第一排的地址。 这个二维数组3行5列且为int型4字节每行20字节当传参时第一排地址被传过去1时跳过20字节一排的地址长度所以我们的结论正确。 函数指针 话说C语言中万物皆地址函数也有地址我们能否通过一个函数指针来接收函数地址呢是否能够通过函数指针完成对函数的引用呢 可以看到其实函数名就是地址函数名与函数名是完全等价的函数指针与数组指针类似都要保证指针名与*的先结合其他部分就是函数的类型了。 typedef关键字 typedefg关键字的作用就是给类型重命名简单化。
如将unsigned int重命名为unit 值得注意的是当对数组指针与函数指针进行重命名时一定要把别名放在*右边。
如将int (*)(int,int)重命名为p Respect!