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

巨量算数官方入口百度优化排名软件

巨量算数官方入口,百度优化排名软件,wordpress 伪静态 后台,郑州企业网站模板建站正文开始——数组与指针是紧密联系的 #xff08;一#xff09;数组名的理解 #xff08;1#xff09;数组名是数组首元素的地址 int arr[10] {1,2,3,4,5,6,7,8,9,10}; int *parr arr[0]; 上述代码通过arr[0] 的方式得到了数组第一个元素的地址#xff0c;…  正文开始——数组与指针是紧密联系的 一数组名的理解 1数组名是数组首元素的地址  int arr[10] {1,2,3,4,5,6,7,8,9,10}; int *parr arr[0];         上述代码通过arr[0] 的方式得到了数组第一个元素的地址但其实数组名本身就是一个地址并且是数组首元素的地址。 代码1 #includestdio.h int main() {int arr[6] { 1,2,3,4,5,6};printf(%p\n,arr);printf(%p\n,arr[0]);return 0; } 结果         数组名与数组首元素的地址打印出的结果是一样的。于是数组名就是数组首元素第一个元素的地址。 2两个例外 代码2 #include stdio.h int main() {int arr[10] { 1,2,3,4,5,6,7,8,9,10 };printf(%d\n, sizeof(arr));return 0; } 结果 令我们出乎所料的是这里的数组名不再是数组首元素的地址而是表示整个数组。 对于代码中出现的数组名不违背数组名是数组第一个元素的的地址也就是说 数组名是数组首元素的地址是对的但是有两个例外 • sizeof(数组名)sizeof中单独放数组名这里的数组名代表整个数组sizeof计算的是整个数组的大小单位是字节         • 数组名这的数组名代表整个数组取出的是整个数组的地址整个数组的地址和数组首元素的地址是有区别的 除此之外其他地方使用数组名都代表的是数组首元素的地址。 那么数组名与数组名具体有什么区别 通过指针运算就可以体现出他们的区别 代码3 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, arr1);printf(arr %p\n, arr);printf(arr1 %p\n, arr1); 结果 arr[0] 和 arr[0] 1 相差4个字节arr 和 arr 1 相差 4个字节原因是arr[0] 和arr 都是数组arr 首元素的地址通过指针运算 1 就是跳过一个int型的元素也就是跳过4个字节。         arr 和 arr 1 相差40个字节原因是arr是数组的地址指针运算 1 就是跳过整个数组 int   [10] 型元素也就是10个整形40个字节。 二函数内数组传参 1一维数组传参  相信你一定使用过冒泡排序吧; 将数组传址和数组内元素个数传给函数 ​ int main() {int arr[10] {5,4,8,7,9,6,3,2,1,0};int sz1 sizeof(arr)/sizeof(arr[0]);Bobble_sort(arr,sz1);Print();return 0; }​ 就会得到排序好的数组。 观察上述操作我们都是在函数外部计算数组的元素个数那我们可以把数组传给⼀个函 数后函数内部求数组的元素个数吗   #include stdio.hvoid test(int arr[]) {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; } 结果(在x86下) 为什么传给函数的是数组结果sizeof计算整个数组的的大小 4 字节呢 这就要学习数组传参的本质了上个小节我们学习了数组名是数组首元素的地址那么在数组传参的时候传递的是数组名也就是说数组传参本质上传递的是数组首元素的地址。         所以函数形参的部分理论上应该使用指针变量来接收首元素的地址。 void Bobble_sort(int* p,int sz) {....... }int main() {int arr[5] {1,2,3,4,5};int sz sizeof(arr)/sizeof(arr[0]);Bobble_sort(arr,sz);return 0; } 那么在函数内部我们写sizeof(arr) 计算的是⼀个地址的大小单位字节而不是数组的大小单位字节。正是因为函数的参数部分是本质是指针所以在函数内部是没办法求的数组元素个数的。 2二维数组传参  二维数组传参以上的结论仍成立 数组传参本质上传递的是数组首元素的地址。 二维数组的首元素不再是一个基本的数据类型而是一个数组类型。 什么是数组类型 如果一个数组是整形数组元素是5个整形那么他的类型就是 int    [5] 类型。 二维数组首元素的地址其数据类型就是int  *[5]类型。 那么在主函数内未传参sizeof二维数组的数组名计算的就是整个二维数组大小 传参后sizeof二维数组名的结果就是指针int  *[5]的大小了。所有类型函数其地址的大小是一定的 3三维及高维数组传参 仍然满足   数组传参本质上传递的是数组首元素的地址。 这里我们来看一段代码 #includestdio.hvoid PR(int (*p)[3][3]) {} int main() {int arr[3][3][3];PR(arr);return 0; } 解释 数组arr的首元素类型是int    [3][3],在传参的时候可以用指针类型int*[3][3]来接收类型是照应的。这也说明 arr传递的是首元素的地址 完~ 未经作者同意禁止转载
http://www.pierceye.com/news/256208/

相关文章:

  • 做竞彩网站代理犯法么建站公司 网站
  • 浙江建设证书查询seo服务公司深圳
  • 长沙协会网站设计专业服务医疗信息化软件公司排名
  • 北京网站制作一般多少钱黑色网站欣赏
  • 广州建设工程造价管理站wordpress获取文章title
  • 免费购物网站源码网站开发的论文引言
  • 商城网站开发需要哪些人员本机建的网站打开却很慢
  • 网站建设哪专业学会python做网站
  • vs怎么添加图片做网站地方门户网站管理系统
  • 三亚做网站的公司科技网站推荐
  • 电商网站运维怎么做自己做网站创业
  • seo有哪些网站集团公司网站 案例
  • 传媒大学附近网站建设公司天津市工程建设公众信息网官网
  • 关于网站建设与维护的参考文献家装设计费用多少钱一平方
  • 网站建设与管理专业概述网站建设报价费用是多少
  • asp医院网站源码破解版北京企业做网站报价
  • 个人做电商网站赚钱吗门业网站模板
  • 企业产品微网站收费吗wordpress移服务器改域名
  • 原创文章网站网站建设团队介绍
  • WordPress建站详细过程安康建设网站
  • 仿视频网站开发wordpress下载文件
  • 专业的个人网站建设哪家建筑施工企业专职安全生产管理员
  • 企业网站模板php全球网站排名前100
  • 1688网站可以做全屏吗有哪些网站是织梦做的
  • vue2.0网站开发做网站没有成本的方法
  • 手机网站和app有什么区别流量对网站排名的影响因素
  • 北京全网营销推广公司网站建设以及seo
  • 免费html网站代码骨科医院网站模板
  • 华强方特网站开发辽宁工程技术大学电子信息网
  • 信誉好的网站建设案例微网站后台录入