指向数组a,a[0][0],a[0][1],a[0][2]...,a[3][2],指针确实很麻烦..p=a[0] ;p指向a[0][0],a[0][1],a[0][2]验证程序如下:include<stdio.h>void main(){int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12} , (*prt)[3]=a, *p=a[0] ;int i;printf...
include <stdio.h> int arrayFind(int a[], int n, int x){ int i;for(i=0;i<n;i++)if(a[i]==x) return i;return -1;} void main(){ int a[5]={10,20,30,40,50};int n,x;int xiabiao;n=sizeof(a)/sizeof(int);printf("请输入需要查找的元素x: \n");scanf("...
p所指向的是a[1]的地址,第一次for循环时y=y+*(p+0),即y=y+a[1],得到y=1+4=5,第二次循环y的初值为5,按照第一次循环可得,y=5+*(p+1),即y=5+6=11,第三次亦是如此,在第二次基础上加上a[3],得到19.?
printf("%d\t%d\t%d sizeof(&a)\n",sizeof(&a),sizeof(&a[0]),sizeof(&a[0][0]));0022FEF0 0022FEF0 0022FEF0 a a[0] a[0][0]120 40 10 sizeof(a)4 4 4 sizeof(&a)可以看到a,a[0],a[0][0]实际上是一个值。他们的不同点是类型不...
错误就这 *q = NULL,赋初值就在这里 而 *q= *(p + 5); 是 给内存(指针所指地方)存数据 无法往 NULL 存数据吧 因为
#include<iostream> usingnamespacestd;intmain(){ inta[4][3];intMax=0;//赋值之前需要先置为0 cout<<"pleaseinput12numbers:"<<endl;for(inti=0;i<4;i++)//嵌套循环,用于向二维数组中输入内容 { for(intj=0;j<3;j++){ cin>>a[i][j];...
对p赋值的是数组a的 始地址,也就是 &a[0], 不是元素值。输出有2种方法:include <stdio.h> include <stdlib.h> main(){ int a[]={1,2,3,4,5,6};int *p=a;int i,n;n = sizeof(a)/sizeof(int);for (i=0;i< n ;i++) printf("%d ", p[i]); //输出 printf("\...
结果是 : 20 20 pp=&p 也就是说pp存放的是p的地址。。。p = &a p存放a的地址,指向a p = &b p存放b的地址了,指向b了 输出*p也就是p指向的变量值,是b的值,也就是20 pp: *pp是p的地址,*pp和p指向的相同的变量的值。。也是b 希望能帮到你。。。输出...
例子:int a[2],x=2,y=5;a[0]=(x+3,y++,x++);那么最终结果是:a[0]=2 x=3 y=6;为何a[0]=2:因为(x++)是运算之后再自加 a[1]=(x++,x+3,x+7);那么最终结果是:a[1]=11 ,x=4 第一反应,我以为a[1]=10,就是3+7;其实是错的,逗号运算是从左至右,所以先算 x...
include <stdio.h> void main(){ int a[]={0,2,4,6,8,10};int *p=a+1;printf("%d",*(--p));} 运行下看看就知道了,整型指针一开始就指向了a[1]也就是2,++P就是4了 只能是d int