我问的是图片里的p[i][i]是什么意思,程序是可以输出的结果是26,但是我不知道是如何得到的p是一维的指针,为啥有两个下标!
追答打了一长串,没提交成功,不想再打一次了。就简单的说吧。
前面定义的p是存储指针的一维数组。那么p[x]是一个指针(不妨认为p[x]是A,A是一个指针)
那么p[x][y]就是A[y],A[y]的值就是A指向的那个元素往下y个的元素的值。
跟详细的自行百度“数组与指针”。
c语言中指针数组有两个中括号是什么意思,p[i][i]是啥意思
数组可以看作是一行连续的数据,只有一个下标,称为一维数组。在实际问题中有很多数据是二维的或多维的,因此C语言允许构造多维数组。多维数组元素有多个下标,以确定它在数组中的位置。本节只介绍二维数组,多维数组可由二维数组类推而得到。二维数组的定义 二维数组定义的一般形式是:dataType arrayName[l...
指针后面有中括号表示什么
ps[i] 里的中括号,C语言处理成运算符,ps[i] 等价于 *(ps+i),C语言里,指针和数组关系密切。*ps, 一旦有指向地址后,就可以看成 一维数组ps[], 哪种形式便于阅读理解,就可以用哪种形式。 ps[i] 等价于 *(ps+i)。
C语言中,指针*p[i]与p[i]有什么却别?分别代表什么意思?
p[i]:数组p的[i]这个地方放的值 p[i]:数组p的[i]这个地方放的值(这当做一个地址)的值,即p[i]这个地方放了一个地址(相当于另外一个p[i]),然后用*读取他所代表的值。---即我所说的:数组p的[i]这个地方放的值(当做一个地址)的值 ...
请教C语言指针中 &p[0] p+i *(p+i) p[i] 区别 一直感觉很迷茫_百度知 ...
p[i]就是数组中第i个元素。因为数组其实是用指针存放的,p就是第0个元素p[0]的地址(为了方便,我喜欢把第一个元素叫做第0个,因为它的下标是0,所以p【i】就是就是第i个元素的地址。
请教C语言指针中 &p[0] p+i *(p+i) p[i] 区别 一直感觉很迷茫_百度知 ...
C语言规定,对所定义的数组,数组名称等价于数组的首地址,即数组第一个元素的地址 & 是计算变量地址的运算符, * 是求出指定地址中的数据内容的运算符 所以,在定义了一维数组p的前提下,&p[0] 指的是数组第一个数组元素的地址,&p[0] 与 p 是等价的 p+i 是数组下标为i的数组元素的地址,...
C语言中两个*是什么意思?比如int**p
2 个*号,声明指向指针的指针。它的意思是“它是一个整数,这个整数指向某个内存地址,一次访问sizeof(int)长度,其值是一个整数,那个整数值指向某个内存地址,一次访问sizeof(BTree)长度。指针可以指向一份普通类型的数据,例如 int、double、char 等,也可以指向一份指针类型的数据,例如 int *、...
C语言指针问题
p是指针数组,就是有两个指针 for(i=0;i<2;i++) p[i]=ch[i];这个就是赋值给p指针,其中p[0] 等于ch二维数组的第0行的首地址,p[1]等于ch二维数组的第1行的首地址 for(i=0;i<2;i++) \/\/循环p指针数组 for(j=0;p[i][j]>'\\0';j+=2) \/\/间隔j+=2循环p[i]指向...
C语言中指针 int *P;为什么还可以这样用?就是p[i],其中i是一个整型常...
简单说下,int *P这里只是声明一个指针P而已,你可以 比如有数组A,然后把指针P指向数组A(你可以理解为现在P就是数组A的快捷方式),那么 P[3]= A[3],P[2]=A[2],P[i]=A[i], 因为快捷方式嘛……
c语言中,数组的指针问题。
2 你的意思是说 p+i是第i行的首地址,然后取* ,就得到了内容, 是吧?p+i 是行地址,取* 就变成了列地址,所以它还是指向第i行的列地址,而a(也就是p),它是行地址,,只有对列地址取* 才会成为具体的元素值。例如*(*(p+i)+j) p是行地址,p+i还是行地址,取* 就变成了列...
c语言中p!=i是什么意思
p和i是指针,比较的是两个指针指向的位置,当二者指向不通位置时此条件为真 p和i是整形或者字符,比较的是两个变量的值,二者值不同时条件为真 当p和i分别表示数组时,此时p和i在表达式中都退化为数组首地址的指针,比较方式同指针 p和i表示浮点类型时,无法比较╮(╯_╰)╭ ...