首页 > 其他分享 >指针处理多维数组的列

指针处理多维数组的列

时间:2022-12-02 10:35:24浏览次数:35  
标签:COLS 括号 编译器 NUM 数组 多维 指针

指针处理二维数组的行比较简单,但处理二维数组的列就没那么容易了,因为数组是按行而不是按列存储的。下面的循环对数组a的第i列清零:

int a[NUM_ROWS][NUM_COLS], (*p)[NUM_COLS], i;

for (p = &a[0]; p < &a[NUM_ROWS]; p++)
    (*p)[i] = p;

这里把p声明为指向长度为NUM_COLS的整形数组的指针。在(*p)[NUM_COLS]中,*p是需要使用括号的;如果没有括号,编译器将认为p是指针数组,而不是指向数组的指针。表达式p++把移到下一行的开始位置。在表达式(*p)[i]中,*p代表a的一整行,因此(*p)[i]选中了该行第i列的那个元素。(*p)[i]中的括号是必要的,因为编译器会将*p[i]解释为*(p[i])

标签:COLS,括号,编译器,NUM,数组,多维,指针
From: https://www.cnblogs.com/matrioc/p/16943622.html

相关文章

  • java往oracle存储过程中传递数组方法小结
    java往oracle存储过程中传递数组方法小结,下面是一个例子,比如存储过程中要接受一个数组,并且输出一个数组,则先注意数组在oracle中的定义方法如下:CRE......
  • js中数组追加和删除
    1.push 往后追加letarr=[1,2,3,4];arr.push(5);console.log(arr);//得到[1,2,3,4,5] 2.unshift方法往前追加letarr=[1,2,3,4];arr.unshift(5);console.log(arr);......
  • 指针实现字符串排序
    题目描述在主函数中输入5个字符串(每个字符串的长度不大于20),并输出这5个字符串。编写一个排序函数,完成对这些字符串按照字典顺序排序。然后在主函数中调用该排序函数,并输......
  • 空指针异常
    对象已经没有了,自然会出现空指针。没有对象了,对象级别的引用和对象级别的方法的调用都会出现空指针异常。......
  • 算四个学生成绩的平均分(运用了二维数组)
    #include<stdio.h>intmain(){floata[3][5]={{25,68,78,89},{85,89,78,85,},{74,78,85,96}};//这个数组前面的4即代表四个同学后面的5代表一个同学......
  • 力扣刷题笔记 167. 两数之和 II - 输入有序数组
    问题描述给你一个下标从1开始的整数数组numbers,该数组已按非递减顺序排列,请你从数组中找出满足相加之和等于目标数 target的两个数。如果设这两个数分别是numbers[ind......
  • 4. 寻找两个正序数组的中位数
    #include<vector>#include<iostream>usingnamespacestd;classSolution{public:Solution(){}~Solution(){}doublefindMedianSortedArrays(vecto......
  • golang 模拟byte数组
    packagemainimport("fmt")typeBytes[]bytefuncmain(){ fmt.Println("hello") fmt.Println("--------------") //ascii字符=============================......
  • acwing 140. 后缀数组
    把字符串S的所有后缀按照字典序排列,排名为i的后缀记为SA[i] 额外地,我们考虑排名为i的后缀与排名为 i-1的后缀,把二者的最长公共前缀的长度记为hgt[i]使用快排......
  • 剑指offer:数组中出现次数超过一半的数字
    题目描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因......