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

旅游网站开发报价单微信贷款怎么申请开通

旅游网站开发报价单,微信贷款怎么申请开通,百度热门关键词,南宁网站建设蓝云#x1f388;个人主页#xff1a;JAMES别扣了 #x1f495;在校大学生一枚。对IT有着极其浓厚的兴趣 ✨系列专栏目前为C语言初阶、后续会更新c语言的学习方法以及c题目分享. #x1f60d;希望我的文章对大家有着不一样的帮助#xff0c;欢迎大家关注我#xff0c;我也会回… 个人主页JAMES别扣了 在校大学生一枚。对IT有着极其浓厚的兴趣 ✨系列专栏目前为C语言初阶、后续会更新c语言的学习方法以及c题目分享. 希望我的文章对大家有着不一样的帮助欢迎大家关注我我也会回关大家一起交流一起互动感谢大家的多多支持哈 欢迎 点赞✍评论⭐收藏 前言 指针在C语言的版块中是有着极其重要的作用通过两篇关于指针基础文章以及读者不断的代码实现可以很好掌握指针的基础知识接下来我将结合C语言中数组方面的知识给读者们展示不一样的指针内容这个系列文章我会写三篇左右谢谢大家支持哈 往期相关内容高质量文章93质量分 C语言数组一篇文章让你秒懂基础!-CSDN博客 C语言指针(上)一篇文章让你秒懂基础-CSDN博客 C语言指针下一篇文章让你秒懂基础5000字-CSDN博客 1.数组名的理解 在之前的数组文章中我们一起探讨过数组的基本知识现在让我们更深一步理解数组的相关概念。 这⾥我们使⽤ arr[0] 的⽅式拿到了数组第⼀个元素的地址但是其实数组名本来就是地址⽽且 是数组⾸元素的地址我们来做个测试。 #include stdio.hint 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.hint main(){int arr[10] { 1,2,3,4,5,6,7,8,9,10 };printf(%d\n, sizeof(arr));return 0;} 输出的结果是40如果arr是数组⾸元素的地址那输出应该的应该是4/8才对。 其实数组名就是数组⾸元素(第⼀个元素)的地址是对的但是有两个例外 • sizeof(数组名)sizeof中单独放数组名这⾥的数组名表⽰整个数组计算的是整个数组的⼤⼩ 单位是字节 • 数组名这⾥的数组名表⽰整个数组取出的是整个数组的地址整个数组的地址和数组⾸元素 的地址是有区别的 除此之外任何地⽅使⽤数组名数组名都表⽰⾸元素的地址。 这时有好奇的同学在试⼀下这个代码 #include stdio.hint 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.hint 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, arr1); printf(arr %p\n, arr); printf(arr1 %p\n, arr1); return 0;}输出结果 arr[0] 0077F820 arr[0]1 0077F824 arr0077F820 arr10077F824 arr0077F820 arr1 0077F848 这⾥我们发现arr[0]和arr[0]1相差4个字节arr和arr1相差4个字节是因为arr[0]和arr都是 ⾸元素的地址1就是跳过⼀个元素。 但是arr和arr1相差40个字节这就是因为arr是数组的地址1操作是跳过整个数组的。 到这⾥⼤家应该搞清楚数组名的意义了吧。  2. 使⽤指针访问数组 有了前⾯知识的⽀持再结合数组的特点我们就可以很⽅便的使⽤指针访问数组了。 #include stdio.hint main(){int arr[10] {0}; //输⼊int i 0;int sz sizeof(arr)/sizeof(arr[0]); //输⼊int* p arr;for(i0; isz; i){scanf(%d, pi);//scanf(%d, arri);//也可以这样写} //输出for(i0; isz; i){printf(%d , *(pi));}return 0;} 这个代码搞明⽩后我们再试⼀下如果我们再分析⼀下数组名arr是数组⾸元素的地址可以赋值 给p其实数组名arr和p在这⾥是等价的。那我们可以使⽤arr[i]可以访问数组的元素那p[i]是否也可 以访问数组呢 #include stdio.hint main(){int arr[10] {0}; //输⼊int i 0;int sz sizeof(arr)/sizeof(arr[0]); //输⼊int* p arr;for(i0; isz; i){scanf(%d, pi);//scanf(%d, arri);//也可以这样写} //输出for(i0; isz; i){printf(%d , p[i]);}return 0;} 将*(pi)换成p[i]也是能够正常打印的所以本质上p[i]是等价于*(pi)。 同理arr[i] 应该等价于*(arri)数组元素的访问在编译器处理的时候也是转换成⾸元素的地址偏移 量求出元素的地址然后解引⽤来访问的。 3. ⼀维数组传参的本质 数组我们学过了之前也讲了数组是可以传递给函数的这个⼩节我们讨论⼀下数组传参的本质。 ⾸先从⼀个问题开始我们之前都是在函数外部计算数组的元素个数那我们可以把函数传给⼀个函 数后函数内部求数组的元素个数吗 #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;} 输出的结果 我们发现在函数内部是没有正确获得数组的元素个数。 这就要学习数组传参的本质了上个⼩节我们学习了数组名是数组⾸元素的地址那么在数组传参 的时候传递的是数组名也就是说本质上数组传参本质上传递的是数组⾸元素的地址。 所以函数形参的部分理论上应该使⽤指针变量来接收⾸元素的地址。那么在函数内部我们写 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;}{ 结论⼀维数组传参形参的部分可以写成数组的形式也可以写成指针的形式。 4.⼆级指针 指针变量也是变量是变量就有地址那指针变量的地址存放在哪⾥答案是更高级别的指针 这就是 ⼆级指针。 对于⼆级指针的运算有 1.*ppa 通过对ppa中的地址进⾏解引⽤这样找到的是  int b 20; *ppa b;// 等价于 pa b; pa *ppa 其实访问的就是 pa . 2.**ppa 先通过 *ppa 找到 pa ,然后对pa进行解应用操作*pa那找到的是a。 **ppa 30; // 等价于 *pa 30; // 等价于 a 30; 5. 指针数组 指针数组是指针还是数组 我们类⽐⼀下整型数组是存放整型的数组字符数组是存放字符的数组。 那指针数组呢是存放指针的数组. 指针数组的每个元素都是⽤来存放地址指针的。 如下图 指针数组的每个元素是地址⼜可以指向⼀块区域. 6. 指针数组模拟⼆维数组 #include stdio.hint main(){int arr1[] {1,2,3,4,5};int arr2[] {2,3,4,5,6};int arr3[] {3,4,5,6,7};//数组名是数组⾸元素的地址类型是int*的就可以存放在parr数组中int* parr[3] {arr1, arr2, arr3};int i 0;int j 0;for(i0; i3; i){for(j0; j5; j){printf(%d , parr[i][j]);}printf(\n);} return 0;} parr[i]是访问parr数组的元素parr[i]找到的数组元素指向了整型⼀维数组parr[i][j]就是整型⼀维数 组中的元素。 上述的代码模拟出⼆维数组的效果实际上并⾮完全是⼆维数组因为每⼀⾏并⾮是连续的。 总结 C语言中数组与指针的深入探索 在C语言编程中数组和指针是两个紧密相关的概念。数组是一种数据结构用于存储相同类型的元素集合而指针则是一种变量用于存储另一个变量的内存地址。理解数组和指针之间的关系对于深入掌握C语言至关重要。 一、数组名的理解 在C语言中数组名实际上是一个指向数组首元素的常量指针。这意味着数组名本身并不表示整个数组而是指向数组第一个元素的地址。因此我们不能对数组名进行赋值操作但可以获取其地址或进行解引用操作。 二、使用指针访问数组 通过指针我们可以直接访问数组中的元素。假设我们有一个整型数组int arr[5];我们可以使用指针int *p arr;来指向数组的首元素。此时*p就表示数组的第一个元素*(p1)表示第二个元素以此类推。通过这种方式我们可以遍历整个数组。 三、一维数组传参的本质 在C语言中当我们将一维数组作为参数传递给函数时实际上传递的是数组首元素的地址。因此函数内部接收到的参数实际上是一个指针指向数组的首元素。这使得我们可以在函数内部通过指针来访问和修改数组的元素。 四、二级指针 二级指针是指向指针的指针。它的声明形式为int **pp;其中pp是一个指向整型指针的指针。二级指针常用于动态内存分配、函数返回多个值以及处理指针数组等场景。 五、指针数组 指针数组是指数组的每个元素都是指针。例如int *pArr[5];表示一个包含5个整型指针的数组。每个指针可以指向一个整型变量或整型数组的首元素。指针数组常用于存储多个字符串的地址或处理多个动态分配的数组。 六、指针数组模拟二维数组 在C语言中二维数组在内存中是连续存储的但我们可以使用指针数组来模拟二维数组的行为。通过为每个指针分配一个一维数组我们可以创建一个不规则的“二维数组”。这种方式在处理稀疏矩阵或动态调整数组大小时非常有用。 通过上述内容的阐述我们可以看到数组和指针在C语言中的紧密关系。理解并掌握这些知识点不仅有助于我们更加灵活地操作数组和指针还能提升我们的编程能力和代码质量。希望本文对你有所帮助祝你学习进步
http://www.dnsts.com.cn/news/202935.html

相关文章:

  • 做网站前端实战视频wordpress新增管理员
  • 做电影网站前途设计排版软件
  • 龙岩做网站哪家最好专业做网文的网站
  • 珠海网站上排名小程序直播助手
  • 部署个人网站厦门旅游必去十大景点
  • 北京网站设计公司排名推荐一个两学一做的网站
  • 室内设计网站 知乎域名三天更换一次
  • 做简单视频网站自己看如何给网站加cdn
  • 高仿酒网站怎么做东莞网站优化哪个公司好
  • 做徒步网站怎么样无法定位wordpress内容目录(wp-content).
  • 那些网站做民宿个人如何做跨境电商?
  • 一个网站可以做几级链接张家口网站开发
  • 东营网站建设预算价格怎么查一个工地的施工单位
  • 微信网站模块中英文网站怎么做
  • 新的网站做淘宝客南充网站网站建设
  • 网站建设经费保障wordpress企业主题制作
  • 走廊文化建设图片网站七牛云使用wordpress
  • wordpress无编辑器合肥网络seo推广服务
  • 泉州网站开发公司wordpress post 模板
  • 网站中搜索栏怎么做网站页面设计论文
  • 古镇中小企业网站建设潍坊专业制氮机活性炭多少钱
  • 长春净月潭建设投资集团网站wordpress页面调用分类目录
  • 陕西网站建设公司网站开发从整体上
  • 上传了网站标志怎么弄常州比较有名的设计公司
  • 镇江网站建设优化制作公司网站设计和建设ppt
  • 昆明专业网站营销网站里的动效怎么做
  • 企业网站seo案例分析多店铺商城系统
  • 网站建设+青海兑换网站建设
  • 摄影师常用的网站网站建设销售发展前景
  • 山东建设网站首页免费个人网站制作