在C语言中,指针可以用来指向数组。可以使用以下两种方式来表示:1. 使用数组名作为指针:在C语言中,数组名可以被解释为指向数组第一个元素的指针。例如,如果有一个数组arr,可以使用指针p指向数组a...
也就是说,pst[1],pst[2],pst[3]都是指针, 以pst[1]为例, 其所指代的内容为:[J] [a] [n] [\0]. printf 语句 带%s,可以直接答应此指针所指代内容。
可以。指针可以指向任何地方,但指向后能不能写就是另外一回事了。比如: p=&a[9] 可以用*p=10写内存,但是 p=&a[9]+1 就不一定能用 *p=10来写该地址的内存了。
int a[3][4]的类型是int [3][4],你要定义一个指针指向它,那么首先它得是个指针,int*p,然后指向这个数组,不能写int*p[4]这样写的话p就是个指针数组了,因为p是变量,而[]的优先级要高于*,所以只能写作int(*p)[4];
(*p)[X]只是说p是指向一个具有X列的一维数组的指针,指针的类型(就是这个一维数组的元素的类型)有待你声明,X的大小也要你写明确,否则p就不可用;p确实是行指针,是指向一行一维数组的,但一个一维数组的长度不是用列数来表示的吗?至于p指向了哪一行,那要由代码给它赋值了才能知道。比如有int...
10、C语言中指向由M个元素组成的一维数组的指针。 #include <stdio.h> #include <stdlib.h> int main() { int arr1[4]={32,75,2,10},i=0,j=0; int arr2[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};//相当于3个一维数组组成...
说明数组元素的地址差是int型大小4乘以元素下标差(即元素相差个数)的,但指向数组元素的指针相减,printf会输出相差的元素个数。这是与printf的实现有关的,我们通过联想C语言的数组知识来理解记忆,在数组中,我们知道数组首地址加上一个偏移量,就可以得到对应下标的元素,而这里我们的情况是变成指针做差的而已。
p指向一个N列二维数组的首地址 p自增1,p指向下一“行”一维数组的首地址 因为p是一个二级指针。所以索引其指向的数据内容需要取二次内容,格式及解释如下:格式:*(*(p+行)+列)解释:其实很好理解,因为p作为二级指针,p++代表的仅仅是行号+1所以格式中*(p+行)就取到了所在行首地址指针(...
伪代码:for(p=score;p<score+数组长度;p++){printf(“格式控制符”,*p);}
百度试题 结果1 题目关于C语言中指针的描述,下列说法错误的是? A. 指针可以存储内存地址 B. 指针可以指向变量 C. 指针可以指向数组 D. 指针不能存储整数 相关知识点: 试题来源: 解析 D