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

青岛外贸网站工商企业注册网上核名

青岛外贸网站,工商企业注册网上核名,贵阳白云区城乡建设局网站,网络营销活动策划书C语言【指针篇】#xff08;三#xff09; 前言正文1. 数组名的理解2. 使用指针访问数组3. 一维数组传参的本质4. 冒泡排序5. 二级指针6. 指针数组7. 指针数组模拟二维数组 总结 前言 本文主要基于前面对指针的掌握#xff0c;进一步学习#xff1a;数组名的理解、使用指针… C语言【指针篇】三 前言正文1. 数组名的理解2. 使用指针访问数组3. 一维数组传参的本质4. 冒泡排序5. 二级指针6. 指针数组7. 指针数组模拟二维数组 总结 前言 本文主要基于前面对指针的掌握进一步学习数组名的理解、使用指针访问数组、一维数组传参的本质、冒泡排序、二级指针、指针数组以及指针数组模拟二维数组。 正文 1. 数组名的理解 我们可能遇到过这样的代码 int arr[10] {1,2,3,4,5,6,7,8,9,10}; int *p arr[0];在这里arr[0]表示取到第一个元素的首地址而arr本身就是地址地址与首元素的地址一样如下代码可做验证 #include stdio.h int main() {int arr[10] { 1,2,3,4,5,6,7,8,9,10 };printf(arr[0] %p\n, arr[0]);printf(arr %p\n , arr);return 0; }运行结果果然一致 结论数组名和数组首元素的地址打印出的结果一模一样即数组名就是数组首元素 的地址。 但是有人又有这样的疑问既然一样它们所占字节是否也是相等的如下代码 #include stdio.h int main() {int arr[10] { 1,2,3,4,5,6,7,8,9,10 };printf(%zd\n, sizeof(arr));printf(%zd\n, sizeof(arr[0]));return 0; }显然不同若arr是数组首元素的地址输出应该是4或8取决于系统中指针的大小。 其实数组名是数组首元素的地址这一说法是正确的 但存在两个例外 sizeof(数组名)sizeof中单独放数组名这里的数组名表示整个数组计算的是整个数组的大小单位是字节。 数组名这里的数组名表示整个数组取出的是整个数组的地址整个数组的地址和数组首元素的地址是有区别的)。 我们可以测试如下代码 #include stdio.h int main() {int arr[10] { 1,2,3,4,5,6,7,8,9,10 };printf(arr[0] %p\n, arr[0]);printf( arr %p\n, arr);printf(arr %p\n, arr);return 0; }结果是一致的那arr和arr有啥区别呢再看下面代码 #include stdio.h int main() {int arr[10] { 1,2,3,4,5,6,7,8,9,10 };printf(arr[0] %p\n, arr[0]);printf(arr[0]1 %p\n, arr[0] 1);printf(arr %p\n, arr);printf(arr1 %p\n, arr 1);printf(arr %p\n, arr);printf(arr1 %p\n, arr 1);return 0; }可以发现arr[0]和arr[0]1相差 4 个字节arr和arr1相差 4 个字节这是因为arr[0]和arr都是首元素的地址1就是跳过一个元素。而arr和arr1相差 40 个字节这是因为arr是数组的地址1操作是跳过整个数组。至此数组名的意义就清楚了数组名是数组首元素的地址但有上述 2 个例外。 2. 使用指针访问数组 下面我们看如何使用指针快速访问数组下面给出常见写法 注意:语句上面的注释代表等价 #includestdio.hint main() {int arr[10] { 0 };//使用指针操作数组int sz sizeof(arr) / sizeof(arr[0]);int* p arr;//输入for (int i 0; i sz; i){/*scanf(%d, p);p;*/scanf(%d, p i);}//输出p arr;for (int i 0; i sz; i){/*printf(%d, *p);p;*//*printf(%d , *(p i));*//*printf(%d , arr[i]);*//*printf(%d , p[i]);*/printf(%d , i[arr]);//可以但不推荐毕竟太奇怪了}return 0; } 最后自己敲出来理解一下。 3. 一维数组传参的本质 数组可以传递给函数本小节讨论数组传参的本质。先看一个问题之前都是在函数外部计算数组的元素个数能否把数组传给函数后在函数内部求数组的元素个数呢 #include stdio.h void test(int arr[])//arr[]相当于指针变量x64是8字节 {int sz2 sizeof(arr)/sizeof(arr[0]);printf(sz2 %d\n, sz2); } int main() {int arr[10] {1,2,3,4,5,6,7,8,9,10};int sz1 sizeof(arr)/sizeof(arr[0]);printf(sz1 %d\n, sz1);test(arr);return 0; }输出结果 发现在函数内部没有正确获得数组的元素个数。 这是因为数组传参的本质是数组名是数组首元素的地址数组传参时传递的是数组名即本质上传递的是数组首元素的地址。 所以函数形参部分理论上应该使用指针变量来接收首元素的地址。在函数内部写sizeof(arr)计算的是一个地址的大小单位字节而不是数组的大小单位字节。正是因为函数的参数部分本质是指针所以在函数内部无法求出数组元素个数。 void test(int arr[])//参数写成数组形式,本质上还是指针 {printf(%d\n, sizeof(arr)); } void test(int* arr)//参数写成指针形式 {printf(%d\n, sizeof(arr));//计算一个指针变量的大小 } int main() {int arr[10] {1,2,3,4,5,6,7,8,9,10};test(arr);return 0; }两个的结果是一致的x64都是8 总结一维数组传参形参的部分可以写成数组的形式也可以写成指针的形式。 4. 冒泡排序 排序在数据结构中会重点讲这里简单说一下冒泡排序 冒泡排序的核心思想是两两相邻的元素进行比较。 方法1 //方法1 void bubble_sort(int arr[], int sz)//参数接收数组元素个数 {int i 0;for(i0; isz-1; i){int j 0;for(j0; jsz-i-1; j){if(arr[j] arr[j1]){int tmp arr[j];arr[j] arr[j1];arr[j1] tmp;}}} } int main() {int arr[] {3,1,7,5,8,9,0,2,4,6};int sz sizeof(arr)/sizeof(arr[0]);bubble_sort(arr,sz);int i0;for(i0;isz;i){printf(%d,arr[i]);}return 0; }方法2 - 优化 //方法2-优化 void bubble_sort(int arr[],int sz) {int i0;for(i0;isz-1;i){int flag1;//假设这一趟已经有序了int j0;for(j0;jsz-i-1;j){if(arr[j]arr[j1]){int tmp arr[j];arr[j] arr[j1];arr[j1]tmp;flag 0;}}if(flag1)//这一趟没交换就说明已经有序,后续无序排序了break;} } int main() {int arr[]{3,1,7,5,8,9,0,2,4,6};int szsizeof(arr)/sizeof(arr[0]);bubble_sort(arr, sz);int i0;for(i0;isz;i){printf(%d,arr[i]);}return 0; }5. 二级指针 指针变量也是变量有地址指针变量的地址存放在二级指针中。 #include stdio.h int main() {int a10;int *pa a; int**ppapa;return 0; }对于二级指针的运算有 *ppa通过对ppa中的地址进行解引用找到的是pa*ppa其实访问的就是pa。 int b 20; *ppa b;//等价于 pa b;**ppa先通过*ppa找到pa然后对pa进行解引用操作*pa找到的是a。 **ppa 30; //等价于*pa 30; //等价于a 30;int main() {int a 10;int* pa a;int** ppa pa; printf(%d\n, a);printf(%d\n, *pa);printf(%d\n, **ppa);return 0; }6. 指针数组 指针数组是存放指针的数组类比整型数组存放整型、字符数组存放字符。指针数组的每个元素都是用来存放地址指针的每个元素又可以指向一块区域。 简单示例 int main() {int a 10, b 20, c 30,d 40;int* parr[4] { a,b,c,d };for (int i 0; i 4; i){printf(%d , *(parr[i]));}return 0; } 7. 指针数组模拟二维数组 代码演示 #include stdio.h int main() {int arr1[5] { 1,2,3,4,5 };int arr2[5] { 2,3,4,5,6 };int arr3[5] { 3,4,5,6,7 };int* parr[3] { arr1,arr2,arr3 };int i 0;for (i 0; i 3; i){int j 0;for (j 0; j 5; j){printf(%d , parr[i][j]);}printf(\n);}return 0; } parr[i]用于访问parr数组的元素parr[i]找到的数组元素指向了整型一维数组parr[i][j]就是整型一维数组中的元素。 上述代码模拟出二维数组的效果但实际上并非完全是二维数组因为每一行并非是连续的。 总结 本文大部分内容都是围绕数组和指针两者结合使用并且涉及排序这个数据结构的重要内容喜欢或觉得有用的话还希望点赞关注收藏三连支持一下谢谢。
文章转载自:
http://www.morning.lffgs.cn.gov.cn.lffgs.cn
http://www.morning.dkbsq.cn.gov.cn.dkbsq.cn
http://www.morning.pqkgb.cn.gov.cn.pqkgb.cn
http://www.morning.cgtrz.cn.gov.cn.cgtrz.cn
http://www.morning.xwlhc.cn.gov.cn.xwlhc.cn
http://www.morning.tqwcm.cn.gov.cn.tqwcm.cn
http://www.morning.zlzpz.cn.gov.cn.zlzpz.cn
http://www.morning.ltdxq.cn.gov.cn.ltdxq.cn
http://www.morning.pyncm.cn.gov.cn.pyncm.cn
http://www.morning.ljbpk.cn.gov.cn.ljbpk.cn
http://www.morning.xkjqg.cn.gov.cn.xkjqg.cn
http://www.morning.hhxpl.cn.gov.cn.hhxpl.cn
http://www.morning.kcwkt.cn.gov.cn.kcwkt.cn
http://www.morning.yuminfo.com.gov.cn.yuminfo.com
http://www.morning.wrdpj.cn.gov.cn.wrdpj.cn
http://www.morning.vvbsxm.cn.gov.cn.vvbsxm.cn
http://www.morning.jllnh.cn.gov.cn.jllnh.cn
http://www.morning.qsmmq.cn.gov.cn.qsmmq.cn
http://www.morning.zdtfr.cn.gov.cn.zdtfr.cn
http://www.morning.zgqysw.cn.gov.cn.zgqysw.cn
http://www.morning.wxqmc.cn.gov.cn.wxqmc.cn
http://www.morning.mrqwy.cn.gov.cn.mrqwy.cn
http://www.morning.kgcss.cn.gov.cn.kgcss.cn
http://www.morning.pwbps.cn.gov.cn.pwbps.cn
http://www.morning.rfldz.cn.gov.cn.rfldz.cn
http://www.morning.jgnjl.cn.gov.cn.jgnjl.cn
http://www.morning.mzjbz.cn.gov.cn.mzjbz.cn
http://www.morning.pabxcp.com.gov.cn.pabxcp.com
http://www.morning.hjjfp.cn.gov.cn.hjjfp.cn
http://www.morning.hkgcx.cn.gov.cn.hkgcx.cn
http://www.morning.msbmp.cn.gov.cn.msbmp.cn
http://www.morning.tbplf.cn.gov.cn.tbplf.cn
http://www.morning.lbxcc.cn.gov.cn.lbxcc.cn
http://www.morning.kpqjr.cn.gov.cn.kpqjr.cn
http://www.morning.rxdsq.cn.gov.cn.rxdsq.cn
http://www.morning.bysey.com.gov.cn.bysey.com
http://www.morning.pwksz.cn.gov.cn.pwksz.cn
http://www.morning.wxckm.cn.gov.cn.wxckm.cn
http://www.morning.jzfxk.cn.gov.cn.jzfxk.cn
http://www.morning.cwyrp.cn.gov.cn.cwyrp.cn
http://www.morning.yrsg.cn.gov.cn.yrsg.cn
http://www.morning.fmrrr.cn.gov.cn.fmrrr.cn
http://www.morning.xhftj.cn.gov.cn.xhftj.cn
http://www.morning.xzrbd.cn.gov.cn.xzrbd.cn
http://www.morning.hkshy.cn.gov.cn.hkshy.cn
http://www.morning.rqjxc.cn.gov.cn.rqjxc.cn
http://www.morning.lpgw.cn.gov.cn.lpgw.cn
http://www.morning.jjmrx.cn.gov.cn.jjmrx.cn
http://www.morning.qpqb.cn.gov.cn.qpqb.cn
http://www.morning.pmtky.cn.gov.cn.pmtky.cn
http://www.morning.yszrk.cn.gov.cn.yszrk.cn
http://www.morning.tlnkz.cn.gov.cn.tlnkz.cn
http://www.morning.rrjzp.cn.gov.cn.rrjzp.cn
http://www.morning.yhwxn.cn.gov.cn.yhwxn.cn
http://www.morning.gtqws.cn.gov.cn.gtqws.cn
http://www.morning.kxltf.cn.gov.cn.kxltf.cn
http://www.morning.gyjld.cn.gov.cn.gyjld.cn
http://www.morning.wmdbn.cn.gov.cn.wmdbn.cn
http://www.morning.zycll.cn.gov.cn.zycll.cn
http://www.morning.ysbrz.cn.gov.cn.ysbrz.cn
http://www.morning.qwmpn.cn.gov.cn.qwmpn.cn
http://www.morning.trsdm.cn.gov.cn.trsdm.cn
http://www.morning.zsgbt.cn.gov.cn.zsgbt.cn
http://www.morning.jxdhc.cn.gov.cn.jxdhc.cn
http://www.morning.rybr.cn.gov.cn.rybr.cn
http://www.morning.zlnf.cn.gov.cn.zlnf.cn
http://www.morning.ztmnr.cn.gov.cn.ztmnr.cn
http://www.morning.nwfpl.cn.gov.cn.nwfpl.cn
http://www.morning.jwpcj.cn.gov.cn.jwpcj.cn
http://www.morning.smry.cn.gov.cn.smry.cn
http://www.morning.lkbdy.cn.gov.cn.lkbdy.cn
http://www.morning.qfmcm.cn.gov.cn.qfmcm.cn
http://www.morning.rgrz.cn.gov.cn.rgrz.cn
http://www.morning.pyxwn.cn.gov.cn.pyxwn.cn
http://www.morning.sfcfy.cn.gov.cn.sfcfy.cn
http://www.morning.irqlul.cn.gov.cn.irqlul.cn
http://www.morning.tpnx.cn.gov.cn.tpnx.cn
http://www.morning.mmtbn.cn.gov.cn.mmtbn.cn
http://www.morning.snktp.cn.gov.cn.snktp.cn
http://www.morning.gtmdq.cn.gov.cn.gtmdq.cn
http://www.tj-hxxt.cn/news/276010.html

相关文章:

  • wordpress安装插件需要ftp提升关键词排名seo软件
  • 资源企业网站排名优化价格网站开发设计文案
  • 文成做网站wordpress 批量添加用户权限
  • 松山湖网站建设品牌网站建设小蝌蚪1a
  • 上海市网站建设小型展台设计
  • 中国建设建筑教育网站做网站 业务流程图
  • 凡科的网站怎么仿公司域名注册要收费吗
  • 河北邢台做移动网站创建个人网站多少钱
  • 做网站运营的简历网站关键词选取方法
  • 郴州网站建设有限公司自己做的网站能被别人看到吗
  • 专门做外贸机械的网站网站建设毕业设计综述
  • 网站 经营性网站建设跟前端有什么区别
  • 商丘市有没有做网站科技有限公司最低注册资金
  • 怎么做公司的网站网站如何做响应
  • 网站建设制作模板有.net源码如何做网站
  • 用名字做头像是什么网站做电子书屋的网站
  • 网站建设引流刘贺稳1深圳国际红树林中心
  • idea怎么做网站佛山市网站建设 骏域动力
  • 做物流用哪个网站好企业建设需要的流程
  • 怎么建立自己网站 aspsem推广
  • 为网站做一则广告语公司网络推广网站就选火13星仁德
  • 用什么工具建设网站涿州网站建设公司
  • 卓辉科技 网站建设河北邢台房价
  • 营销型网站建设要多少钱网站投放广告怎么做
  • 南京网站排名公司西昌市规划建设局网站
  • 珠海网站建设维护wordpress大前端主题怎么样
  • 许昌网站seo代理注册公司代理记账
  • wordpress建站事项简述电子商务网站的建设
  • 高端品牌网站建设公司wordpress火车头采集免费版
  • 山东胶州建设工程招标网站wordpress登录机制