当前位置: 首页 > news >正文

网站后台管理教程下载软件的app大全

网站后台管理教程,下载软件的app大全,网站数据库做好了 怎么做网页,企业网站建设网文章目录1 数组的访问方式1.1 数组的访问方式代码分析2 数组和指针不同3 a 和 a 的区别3.1 指针运算的经典代码案例分析4 数组作为函数的参数4.1 数组作为函数参数的代码案例分析5 总结开题问#xff1a;数组名可以当做常量指针使用。那么指针是否可以当做数组来使用? … 文章目录1 数组的访问方式1.1 数组的访问方式代码分析2 数组和指针不同3 a 和 a 的区别3.1 指针运算的经典代码案例分析4 数组作为函数的参数4.1 数组作为函数参数的代码案例分析5 总结 开题问数组名可以当做常量指针使用。那么指针是否可以当做数组来使用? 1 数组的访问方式 以下标的形式访问数组中的元素 以指针的形式访问数组中的元素 下标形式与指针形式的转换 对于上面的转换方式不要觉得奇怪。这是很正确的转换。 1.1 数组的访问方式代码分析 数组下标形式的访问我们很常见下面看一看不是很常见的访问形式; 代码 29-1.c #include stdio.hint main(){int a[5] {0};int* p a;int i 0;for(i0; i5; i){p[i] i1;}for(i0; i5; i){printf(a[%d] %d\n, i,*(ai));}printf(\n);for(i0; i5; i){i[a] i10;}for(i0; i5; i){printf(a[%d] %d\n,i, p[i]);}return 0; }编译运行结果为 可以看出 指针确实可以当做数组来使用访问数组可以通过下标形式与指针形式具体见上图中的转换公式。 2 数组和指针不同 虽然上面说了数组与指针都可以进行访问数组它们很相似但是数组与指针是不同的。在之前的文章中已经有过分析这里不再赘述直接看以前的文章【软件开发底层知识修炼】二十七 C/C中的指针与数组是不同的 3 a 和 a 的区别 a为数组首元素的地址a 为整个数组的地址a 和 a 虽然在数值上是相等的。但是它们的意义不同。在指针运算中存在差别 3.1 指针运算的经典代码案例分析 代码29-3.c #include stdio.hint main() {int a[5] {1, 2, 3, 4, 5};int* p1 (int*)(a 1); int* p2 (int*)((int)a 1);int* p3 (int*)(a 1);printf(%d, %d, %d\n, p1[-1], p2[0], p3[1]);return 0; }上述代码编译运行的结果为 5, 33554432, 3 我们暂且不看p2[0]的结果。 p1[-1] 表示当前指针指向的元素的前一的元素。因为 a 1 后是直接跨过可整个数组到了数组最后一个元素的下一个元素的位置。所以 p[-1] 5p3[1] 3很好理解。*(p3 1) 3 那么p2[0]到底是怎么回事 可以看下图的数组的内存图Linux 系统下的小端模型 上图就是数组a的内存模型在Linux系统的小端模式下。如果这个不懂那就没法往后看。a是数组首元素的地址a1 是第二个元素的地址这也很好理解(int)a 是将a这个常量指针转换为int型变量加入为tmp那么(int)a 1 就直接相当于这个tmp变量加1然后就到了如上图中的位置。然后(int*)((int)a 1) 又将其转换为指针。所以*p2 p2[0] 0x020000000x02000000转换为十进制的值是33554432 。到这里就应该没有什么疑问了 4 数组作为函数的参数 数组作为函数的参数的时候编译器会将其编译为对应的指针。 注意所以数组作为函数参数的时候必须将数组的个数也作为参数传进去否则在函数内无法计算数组的大小。 4.1 数组作为函数参数的代码案例分析 代码29-4.c #include stdio.hvoid func1(char a[5]){printf(In func1 sizeof(a)%d\n,sizeof(a));*a a;a NULL; //可以作为左值但是数组就不行 }void func2(char b[]){printf(In func2 sizeof(b)%d\n,sizeof(b));*b b;b NULL; //可以作为左值但是数组就不行 } int main(){char array[10] {0};func1(array);printf(In func1 array[0]%c\n, array[0]);func2(array);printf(In func2 array[0]%c\n, array[0]);return 0; }编译运行结果如下 分析 由上述代码看出当数组作为函数参数时在函数体内它的大小永远是4是因为它在编译的过程中退化为指针。在32系统中指针的大小总是4字节。并且可以看出数组作为函数参数的时候可以作为左值。但是数组就不可以作为左值这也充分说明数组作为函数参数的时候最终退化为指针指针是可以作为左值的。 5 总结 数组名和指针仅仅是使用方式相同。数组与指针的本质是不同的。数组名不是整个数组的地址它是数组首元素的地址数组作为函数参数的时候会被编译器编译为指针。
http://wiki.neutronadmin.com/news/9404/

相关文章:

  • 做外贸有必要做个网站吗潍坊免费自助建站模板
  • 建立网站c 如何做公司网站
  • 企业网站建设计划表个人网页首页
  • 加强教育信息网站建设广告安装接单app
  • 怎么用自己的网站做链轮向雅虎提交网站
  • 网站 加域名网站如何做网站名称
  • 晋城网站建设电话低代码app开发平台
  • 劳务派遣技术支持 东莞网站建设企业怎么做网络销售
  • 车网站模板预览做网站用什么服务器
  • 海口哪里做网站seo下拉优化
  • 鹏鸿生态板官方网站开发区代理如何在自己做的网站中顶置内容
  • 东莞网站优化宁德城乡建设部网站首页
  • 如何获取所有网站青岛做网站的费用
  • 建设常规的网站报价是多少万博法务网站
  • 威海市网站建设模板手机网站建设公司
  • 中国建设银行网上银行个人登录官方网站大连网络公司企业
  • 怎么建设国外免费网站西安的最新消息
  • 用dw做网站怎么给链接app开发软件怎么做
  • 电商网站建设心得体会郑州男科医院排名哪家医院好
  • 外贸网站制作要求中小型企业网络搭建案例
  • 做网站费用入什么科目免费招商信息发布平台
  • 内江网站怎么做seo郑州免费自助建站模板
  • 贵阳花果园网站建设智能模板网站建设
  • vps看网站蜘蛛上海网站建设公司电
  • 开题报告网站开发方法赣州网站优化制作
  • 无锡江阴做网站公司neutral wordpress
  • 站长工具seo综合查询引流旅行社应做哪些网站
  • 做网站的空间是啥品牌策划方案
  • 信阳网站建设汉狮报价物业企业信息管理系统
  • 付网站建设服务费记账wordpress移除google相关