为您找到"

int a[3][2] = { 1,2,3,4,5,6 }, (*p)[2]; p = a; printf("%d\n",a...

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

...{ int a[]={1,2,3,4,5,6,7,8,9}; int *p=a; printf("%d\n...

int a[10]; 表明a是个数组,a是数组名,数组名在C中就解释为一个地址常量,代表数组的首地址。int *p ; 表明p是个指针变量 p=a; 这时的p中存储的是数组a的首地址,此时,我们就可以把p当作a一样对待了,因此,可以用p[3]表示a[3], 为什么?呵呵,C就是这样规定的。不知道LZ怎么就把p[...

int a[6]={1,2,3,4,5,6},*p; p=a+2; k=*(p+2);h=*(p-2)+p[1]_百度知...

这个比较容易理解,因为a指向1,p=a+2,所以指向3,所以p-2指向1,p[1]为4,所以h=5

int a[6]={1,2,3,4,5,6},*p=&a[2];则p[3]=

p取到的是a[2]的地址,a[2]走3个地址,所以是a[5]=6,既p[3]=6

...main() {int a[]={1,2,3,4,5}; int *p=a; printf("%d",*(++p...

结果:2 main(){ int a[]={1,2,3,4,5};int *p=a;//a是数组名 表示的是数组首元素的地址 这时候p=&a[0];printf("%d",*(++p));//p的基类型为整型,p+1相当于加四个字节 就指向了数组的第二个元素 }

已知:int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12},C语言问题

所以一共向后移动了9个单位,即得出运行结果10!要想正确表达a[1][2],应该是(*(ptr+1))[2],数组的运算符[ ]比间值运算符*的优先级高,(*(ptr+1))[2]表示a向后移动一个单位即三个Int,此时ptr指向4,再往后移动2个Int指向6。其实遇到这类问题画内存结构图比较容易理解了 ...

int a[2][3]={1,2,3,4,5},定义int *b=a[0],求*(b+2)

a[0][0]==1 a[0][1]==2 a[0][3]==3 a[1][0]==4 a[1][1]==5 b指向a[0],即指向第一个三元素的起始位置,b+2就是a[0]+2,取其值就是a[0][2],即3

99. 若有定义int a[][3]={1,2,3,4,5,6,7,8,9};则表达式sizeof(a)/...

因为a[0]代表的是第一行的地址,所以此处sizeof(a[0])指的是一行的字节数。a[0] 是指第0行的3个元素,因而size of(a[0])=3 例如:int a[3][4]={1,2,3,4,5,6,7,8,9};相当于int a[3][4]={{1,2,3,4},{5,6,7,8},{9,0,0,0}};因此,a[1][3]=8, a[2]...

main() { int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12}; int (*prt)[3...

都正确,你要知道,数据在内存当中的存储方式。你的*(*(a+1)+2)就是一行二列的元素,那就是6.而*(*(p+5))就是偏移量为5的那个元素,还是6啊。你的数组虽然是二维数组,但在内存当中还是以顺序的方式存放数据的。了解了就知道怎么回事了。 (提醒,别忘了数组是从0开始的,就是0行...

int a[5]={ 1,2,3,4,5

与p=&a[0]等价的语句p=a;(p+1)的值是2 (a+1)的值是2

...{ int a[]+{1,2,3,4,5,6,7,8,9,0},*p p=a; printf("%d\n",*...

不知道楼主是不是着急打错了,源程序应该如下:include<stdio.h> int main(){ int a[]={1,2,3,4,5,6,7,8,9,0},*p;p=a;printf("%d\n",*(p+9));} 这是一个指针指向数组,形成指针与数组元素相对应的问题。其中,定义了数组a[]和int型指针p,且使指针指向了数组a[],其实是将...
1 2 3 4 5 6 7 8 9

相关搜索