为您找到"

数组问题 int a[5],*p;p=a;p=&a[0];p=&a;都是什么含义

"相关结果约100,000,000个

main() {int a[5]={2,4,6,8,10},*p,**k; p=a; k=&p; printf("%d",*(p...

int a[5]={2,4,6,8,10},*p,**k;p=a;//p指向a数组,p保存了a数组的首地址。a[0]是数组的首元素,所以*p的值就是a[0]的值。k=&p;//k指针指向p,k保存了p的地址。(k可以成为指针的指针)printf("%d",*(p++));//表达式“*(p++)”整体的值相当于*p的值,就是a[0]的值...

在c语言中,有如下式子:int a[5],*pa=a; pa+=2; 他说:*pa=a+2*2=a+...

在这行代码中int a[5],*pa=a; pa的值就是数组a的首地址, pa+=2就是向后移动两个元素的位置,pa+=2 和 pa = a +2是一样的,而不是a +4。a+4就是从数组的首地址开始移动4个偏移量,是错误的。

【sos】以下选项中,对指针变量p不正确的操作是 __

a没错,b也没错就不用说了。a没错:a代表&a[0],是首元素的地址。&a的值=a的值,但是&a代表的意义是整个数组的地址。怎么理解整个数组的地址呢?对于int a[5],假设int长度为4,a地址为0即a=0,那么a+1=4,但是&a+1=20。p=a和p=&a,p在数值上是相等的。

若已定义:int a[5],*p=a; 无法引用数组元素a[3]的是( )。 A、*p+3...

A无法引用a[3],所以选A——因为*p是第一个元素的值即a[0],所以*p+3是a[0]+3而不是a[3]。其余B:p[3]肯定是a[3]没错;C:*(p+3)把p换成a就是*(a+3),这和a[3]等价;D:&p[0]就是p,参照C选项一模一样了!

C语言 int a,*p;*p=a;这个语句对吗?

p是一个为初始化的一个 随机指针,对一个没有初始化的指针进行*运算,这个是取值运算,这个都是错误的,根本就不能对这样的指针做任何操作,严重的有可能p指向了操作系统的一快内存,对他进行操作,系统都有可能 挂掉的 一般的,这样用 int a= 3,*p;p=&a; //a是已经分配了内存的一个int变量...

c语言中*p=&a和p=&a有什么区别

c语言中*p=&a和p=&a只有一个区别就是指针初始化时间不同。p=&a:P是1维指针;p=&a:P是2维指针;p=&a示例:inta;int*p;a=5;p=&a;printf("valueis:%d.",*p);

在int a = 5; int * p = &a; 中*p的值是

int *p=&a //该句意思为: 定义一个指针p 该指针指向a的地址 即*p的内容 为5,如下:p=&a=5

int a[5]={1,2,3},*p=a;则*(p+1)的值是2 求解释

int a[5]={1,2,3}数组在内存中申请了五个连续的地址,假设是五个方框吧□□□,依次存放了1,2,3,0,0;p=a;定义了一个指针,指向a数组的首地址,也就是第一个方框,p+1,就是指向第二个方框。*(p+1)就是取p+1个方框内的数据,据上面分析,我们可知它是2....

int a[5]={4,5,6};int *p=a;则*(p 3)的值为?

int a[5]定义了一个5个元素的一维数组,但是初始化时只提供了3个数据,根据约定,这三个数放在数组的开头a[0]~a[2],后面a[3]~a[4],会自动填充为0,int *p=a;p指向a数组的开头a[0],p+3指向a[3],值应该是0

C语言、二维数组指针中的 * 和 &

行指针1: a[0]—。。。行指针2: a[1]—。。。行指针3: a[2]—。。。4、我也不知道这样说对不对,反正我没试过,你不仿试试看。。。其实这些问题都没必要深究,刚开始学这部分,确实是非常难懂,但只要写的程序多了,用的多了,自然而然就懂了,最后,祝你成功 ...
1 2 3 4 5 6 7 8 9

相关搜索