广西金水建设开发有限公司网站外贸互联网推广
2026/1/21 19:44:44 网站建设 项目流程
广西金水建设开发有限公司网站,外贸互联网推广,网站建设产品培训,wordpress同步微博插件接上篇二分查找#xff0c;我在写的过程中#xff0c;对于主函数arr传给二分查找函数时#xff0c;又用的arr[ ]接收的#xff0c;总没搞清楚。接下来捋一下这几个值。做个笔记#xff0c;便于今后查找翻阅。 感谢b站各种视频#xff0c;各种大佬的无私分享。 一、 首先…接上篇二分查找我在写的过程中对于主函数arr传给二分查找函数时又用的arr[ ]接收的总没搞清楚。接下来捋一下这几个值。做个笔记便于今后查找翻阅。感谢b站各种视频各种大佬的无私分享。一、首先解决原因在创建数组时int arr[10][ ]里必须是一个常量不可以是变量。计算机需要一个常量来分配内存空间便于计算机内部给数组分配地址所以在创建定义数组时[ ]里必须是一个常量。在数组定义好后后面需要使用时就可以直接采用int n10; arr[n]; 了。如何理解呢可理解为 数组的首地址已经知道了类型也固定了那么要通过地址找到某一个元素是很简单的psC99标准引入变长数组第一张图片的代码是不会报错的。二、int* arr和int arr[ ]首先明确数组名是可以表示首元素的地址的。但是1当 sizeof(数组名) 时这里的数组名表示整个数组整体表达式计算的是整个数组的大小单位是字节2当 数组名 时这里的数组名也表示整个数组取地址取出的是整个数组的地址。通过例子我们来进行对比说明。arr和arr1对比arr[0]和arr[0]1打印完全一模一样。arr是数组名代表的是首元素的地址arr[0]是数组的首元素那么都是打印首元素的地址确实应该是一样的也就是验证了数组名就是表示首元素的地址。arr对比arr打印完全一模一样。根据上述2整个数组的地址也就是数组首元素的地址没毛病。arr对比arr1差了4打印的是十六进制加1也就是加了一个与指针所指的类型的长度一个int元素指向了数组的下一个元素的地址。arr对比arr1差了40一个int元素长度为4十个就是40了加1也就是加了一个与指针所指的类型的长度一整个数组因为arr指的是一整个数组所以其1就直接跳过了整个数组。arr1对比arr1arr和arr指的地址相同也同为1但打印却不同了就是因为它俩指的所代表的东西不一样。以上都是一维数组举例。二维数组也是类似的但需注意最好把二维数组理解成为一维数组的数组。int arr[3][4]在内存中是这样存储的便于理解我们可以看成是1的理解与一维数组方式一致。arr,arr1非常容易搞错一定要注意arr1指向了第二行。还需注意这里就很好的可以看作一维数组的数组可以把arr[0]黄色部分当做一维数组的数组名也就是第一行数组的数组名那么arr[0]1就指向第一行的第二个。验证可得出计算二维数组的行和列分别为sizeof(arr)/sizeof(arr[0]) (48/163)sizeof(arr[0])/sizeof(arr[0][0]) (16/44)本集心得很有意思啊多理解理解了其实就本来理所应当是这样的了就不会感觉在胡乱变来变去要知道每个指针都指向的是什么常看常新吧中午刚捋完晚上写的时候就又糊了哈哈

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询