资讯详情

初识C语言:数组作为函数参数

📅 2026/9/28 5:23:07 | 华诺云谱 👁 阅读
初识C语言:数组作为函数参数
1.冒泡排序的错误设计(1)把数组中的数据升序排列a.数组传参的方式数组、指针b.形参是数组的形式 ,实际上是指针存放实参数组的是首元素的地址void bobble_sort(int arr[],int sz) { // 趟数 int i 0; for(i 0; i sz - 1; i) { // 每趟冒泡排序两两配对比较要进行的次数 int j 0; for(j 0; j sz -1-i; j) { if(arr[j] arr[j1]) { int temp arr[j]; arr[j] arr[j 1]; arr[j 1] temp; } } } } int main() { int arr[] {7,8,5,3,4,9,0,1,2,6,10}; // 采用冒泡算法进行排序核心思想是————两个相邻两个元素进行比较 int sz sizeof(arr)/sizeof(arr[0]); bubble_sort(arr,sz); //数组在传参时只需传数组名即可,arr此处为首元素地址 for(int i 0; i sz - 1; i) { printf(%d ,arr[i]); } return 0; } // 0 1 2 3 4 5 6 7 8 9 102.什么是数组名探讨数组名和首元素的地址(1)一维数组数组名int main() { int arr[10]; printf(%p\n,arr); // 首元素地址 00DFFC40 // arr 1 是指指针arr向后偏移 1 位 printf(%p\n,arr1); // 00DFFC44 printf(---------------\n); printf(%p\n,arr[0]); // 首元素地址 00DFFC40 // arr[0] 1 是指指针arr向后偏移 1 位 printf(%p\n,arr[0]1); // 00DFFC44 printf(---------------\n); printf(%p\n,arr); // 整个数组的地址 00DFFC40 // arr 1 是指指针arr向后偏移 1 位 //但由于arr指的是整个数组它向后偏移 1 位则直接跳到末尾元素后面的地址 printf(%p\n,arr1); // 00DFFC68 printf(---------------); int n sizeof(arr); printf(%d\n,n); // 40 return 0; }(2)二维数组数组名int main() { int arr[3][4]; printf(%p\n,arr); // 首元素地址 00D8F7A0 printf(%p\n,arr1); // 00D8F7B0 printf(---------------\n); printf(%p\n,arr[0]); // 首元素地址 00D8F7A0 printf(%p\n,arr[0]1); // 00D8F7B0 printf(---------------\n); printf(%p\n,arr); // 整个数组的地址 00D8F7A0 printf(%p\n,arr1); // 00D8F7D0 printf(---------------); int sz sizeof(arr); printf(%d\n,sz); return 0; }(3)总结数组数组名确实能表示首元素地址但有两个例外1.sizeof(数组名)这里的 “数组名” 表示整个数组计算的是整个数组的大小单位是字节2.数组名这里的 “数组名” 表示整个数组取出的是整个数组的地址
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑