为您找到"

int a[2]={1,3},*p=&a[0]+1; *p的值

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

如何理解inta[3]={1,2,3,4};?

二维数组下标代表的是行和列的个数。int (*p)[3]; 这里是用指针的形式 声明一个新的数组,p = a; 这里把a数组的首元素地址赋给 指针数组,此时新声明的指针数组就指向了a数组,*p就等于a[0];所以 (*p)[2]等价于a[2] = 3;一维数组下标为二的元素 ...

int *p;p=&a[3],其中&是否可以去掉,数组是不是地址变量,如果是地址变 ...

include <stdio.h> void main(){ int a[4] = {1, 2, 3, 4};int * p;p = a + 3;//这样能实现p指针数组a的第四个元素指向的空间(相信你能理解)//p = (int *)a[3]; //这里把一个占用4字节的整型数据赋给1字节的整型指针,编译能通过,但运行是通不过的 printf("* p = ...

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

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

main() { int a[3][3],*p,i; p=&a[0][0]; for(i=0;i<9;i++) *(p+i...

){int a[3][3],*p,i;p=&a[0][0];for(i=0;i<9;i++)(p+i)=i+1;printf("%d \n",a[1][2]);}其中p=&a[0][0]; 就是取二维数组的首地址(二维数组占用的内存空间是线性的)for(i=0;i<9;i++) *(p+i)=i+1; 就是给这个二维数组赋值,也就是a[0][0]=0+1,...

main(){int a[]={2,4,6,8,10};int y=1,x,*p;p=&a[1];for(x=0;x<3;x...

答案是19 过程 x=0时,*(p+x)=*p=a[1]=4 所以y=1+4=5 x=1时,*(p+x)=*(p+1)=a[2]=6 所以y=5+6=11 x=2时,*(p+x)=*(p+2)=a[3]=8 所以y=11+8=19 输出

int a[]={1,3,5,7,9},*p=a; printf("%d.%d",(*(++p))++,*p++); print...

(++p)=*(a+1)=a[1]=3 所以(*(++p))++=3+1 p=a[0]=1 所以*p++=2 a[2]=5

已知:inta[]={1,2,3,4,5},*p=a;在下列数组元素地址的表示中,正确的是...

C &p[2] 正确,就是a[2]的地址 A *p++ 这个的值是 a[1],是元素的值 B &(a+1) 这个非法的,a+1是个纯右值,不可取地址 D 同上 C

int arr[] ={1,2,3,4,5}; int *p=arr;

int *p=arr; // 这是声明加初始化,*p 声明p 是指针,p 只能用来指向 int 型地址,初始化让它指向数组arr 的 首地址,也就是 p=&arr[0];p++; // 这是语句,*p 是 p指向的存储单元里的值,现在要 自增1。也就是执行了 arr[0]=arr[0]+1;p++; // 这是语句,p 是地址, p...

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

其实只需要:a[1][2]的表达式是*(*(a+1)+2) 为什么?(地址加数字就是往后移几个后的地址)a指的是这个二维数组名或起始地址 a+1指的是第一行的起始地址 (a+1)加*后指的是第一行第0列的起始地址(因为还有一整行,不能具体到某个值,所以还是地址)(a+1)+2指的是第一行第二列的...

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]的值...
1 2 3 4 5 6 7 8 9

相关搜索