行指针的用法 c语言中的列指针是指向元素的指针吗,怎么区别行指针与列指针?
c语言中的列指针是指向元素的指针吗,怎么区别行指针与列指针?
(*P)[x]只表示P是指向具有x列的一维数组的指针。指针的类型(即一维数组元素的类型)需要声明,X的大小需要写清楚,否则P不可用。P确实是一个行指针,它指向一个一维组的行,但是一维数组的长度不是用列数来表示的吗?至于P指向哪一行,则由代码为其赋值。例如,如果int a[3][4],(*P[4],P=a,则P指向第一行(第一个下标为0的行),p1指向第二行(第一个下标1),p2指向第三行(第一个下标2)。如果没有赋值(P=a未写入),则P只是指向具有4列的int类型数组的指针(即数组的长度为4)。此时它仍然是一个野指针,没有特定的点
C语言行指针?
例如,定义一个二维数组int a[3][4]={1,2,3,4},{5,6,7,8},{9,10,11,12}数组名,a是行指针,[0]是列指针。以本例为例,虽然a和a[0]地址相同,但指针类型不同,指针类型不同1运算,显然结果不同,所以(row pointer)1中的“1”表示一行中所有元素占用的字节数,而a[0]1,其中1是元素占用的字节数,是两个不同的概念。为了解释这个令人困惑的问题,我们可以用军事训练中的排队点名来解释。班长逐一检查班里的士兵是否在排队。班长每次移动都会经过一个士兵,而排长只检查排里的所有班级是否都在场。排长只从0班出发点到1班出发点。他似乎只走了一步,但实际上他跳过了10个士兵,这相当于一个1。班长面向士兵,排长面向班级,班长相当于列指针,排长相当于行指针。为了在一个类中找到一个士兵,我们必须给出两个参数
inta[2][3]={1,2,3},{4,5,6}
for(inti=0I
{
intsum=0
for(intj=0j
{
sum=*(*(ai)J)
}]cout
}
行指针的用法 二维数组行指针和列指针 (*p)[4]是什么意思
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。