wlbk.net
当前位置:首页 >> C语言中数组指针关于p=A,p=&A等问题!! >>

C语言中数组指针关于p=A,p=&A等问题!!

问题1:一维数组名与二维数组名含义是不一样的,当然跟你理解的指向行或者列是有一定的偏差的。 对于一维数组,比如int a[4],a代表的是int型的指针,其地址指向a[0],对于二维数组比如a[2][4],a代表的是也是指针,只不过不是简单的int型指针,...

int a[10] ; int *p=a ; //定义一维指针p,并指向数组a首地址。 p=a+2 ; //指向数组a的第三个元素 或写成: p= &a[2] ; //通过&运算符号来取a[2]的地址,赋值给p p=&a ; //这是错误的语句!因为,&a的类型是int **, 而p是int *类型,所以,类型...

p = a;或者 p = &a[0]; p = &a;是错误的

int a 表示定义了一个变量 a int p = a 表示定义了一个变量p并给其赋初始值为a 因此int a,p=a的意思是定义一个变量a,由定义了一个变量p,并给p赋初始值为a 并不是数组 C语言中定义数组的方式为:类型 变量名[常量] 如: int arry[10];定义了一...

在定义指针时,指针变量名前的*号是必须的,不能少,区别于普通变量, 说明当前变量是指针变量,而不是普通的变量。 对于你的问题,我举例说明: 情形一: int a[5]={1,2,3,4,5}; int *p=a;//这是在定义指针变量p的同时就直接给它初始化,即把数...

假设p = a; 则*p = a[ 0 ] = 1 *p + 1 = a[ 0 ] + 1 = 2; p + 1 = &a[ 1 ] //这里的 p + 1 是指针p的指向往后挪了一位 因此 *(p + 1) = a[ 1 ] = 3

a声明为int a[3][N],说明a是一个二维数组,第一维是3,第二维是4(N=4), p声明为int (*p)[N],说明p是一个指向含有4个元素的一维数组的指针, 所以p是可以指向a的。 一般地,要让p指向二维数组a,是把a数组的第一个元素a[0][0]的地址赋值给它,...

有了int a[5],*p;,p=&a;显然就是错误的。int a[5],*p;说明了a和p都是int *型指针,只是a是常指针,p是指针变量,那么p=a;就合情合理;&a是指向a[5]的指针,与它类型匹配的是int (*)[5],而不是int *。所以p=&a;的等号两边类型不匹配,编译都过...

首先呢,a是二维数组,不解释。 然后呢,p是一个指针,什么样的指针呢,就是指向一维数组的指针,而且这个一维数组的元素个数呢是5. 然后呢,p=a;就是把p指向a数组。 分析选项: A p+1 .因为p是一维数组指针,所以p每+1就是+1行。错误。 B *(p...

指针的移动是以这个指针指向的变量类型的长度sizeof(type)为单位的,如果这个类型长度为4,那么指针增加1,就是向后移动4个字节。 反过来计算两个指针之间距离的时候,也是以sizeof(type)为单位的。 另外,你这个代码的结果,q-p应该是2,而不是1

网站首页 | 网站地图
All rights reserved Powered by www.wlbk.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com