参考答案和解析
正确答案:B
解析:“int i;”语句为定义了一个整型变量i。“int *p”为定义一个整型指针p。选项A) 中的“int *p=&i;”是定义整型指针变量p,并指向整型i的地址。选项B) 中“i=*p”语句是将p指向的变量赋值给i,而指针p没有初始化,所以选项B) 错误。选项C) 中“p=0;”表示p指向0的地址。选项D) 中“&i”为取i的地址,并赋值给p。
更多“下列有关指针的用法中,错误的是()。A.int i;int *p=&i;B. int i;int *p;i=*p;C. int *p;p=0;D ”相关问题
  • 第1题:

    以下程序输出正确的是______。 amovep(int *p,int(*a)[3],int n) {int i,j; for(i=0;i<n;i++) for(j=0;j<n;j++){ *p=a[i][j];p++;} } main() {int *p,a[3][3]={{1,3,5},{2,4,6}}; p=(int*)malloc(100); arnovep(p,a,3); printf("%d%d\n",p[2],p[5];free(p); }

    A.56

    B.25

    C.34

    D.程序错误


    正确答案:A
    解析:本题main函数中定义了指针p和二维数组a,通过函数amovep将数组的值存入指针p所指向的存储单元中,a的各元素分别为:a[0][0]=1,a[0][1]=3,a[0][2]=5,a[1][0]=2,a[1][1]=4,a[1][2]=6,a[2][0]=0,a[2][1]=0,a[2][2]=0。通过mailoc()函数给指针分配内存空间,free()函数用于释放指针变量所用内存空间。在主函数中通过amovep(p,a,3)调用函数amovep,使得实参p与形参p,实参数组a与形参中指向数组的指针变量共用同一存储空间。最后输出p[2],p[5]为56。

  • 第2题:

    下列语句中正确的是()。A.int * p;i=8; p=&i;B.int * p,i; p=&i;C.float * p;int i;p=&am

    下列语句中正确的是( )。

    A.int * p;i=8; p=&i;

    B.int * p,i; p=&i;

    C.float * p;int i;p=&(float)i;

    D.float * p;cout<<* p;


    正确答案:B
    解析:选项A中的变量i没有定义就使用了;选项C(float)i把i中的数据取出后变为float型,就是一个数值,“&(float)i”不能得到i的地址;选项D中的指针变量,p没有赋值就使用,它到底指向哪个存储单元没有指明,它可能指向不可读取的存储单元,这时的破坏性很大。

  • 第3题:

    下列有关指针的用法中错误的是( )。

    A.int i;int *p=&i;

    B.int i;int *p;i=*p;

    C.int *p;p=0;

    D.int i=5;int *p;p=&i;


    正确答案:B
    解析:“inti;”语句定义了一个整型变量i。“int*p”定义了一个整型指针p。选项A)中的“int*p=&i;”是定义整型指针变量p,并指向整型i的地址。选项B)中“i=*p”语句是将p指向的变量赋值给i,而指针p没有初始化,所以选项B)错误。选项C)中“p=0;”表示p指向0的地址。选项D)中“&i”为取i的地址,并赋值给p。

  • 第4题:

    以下程序输出正确的是______。 amovep(int *p,int(*a)[3],int n) {int i,j; for(i=0;i<n;i++) for(j=0;j<n;j++){ *p=a[i][j];p++;} } main() {int *p,a[3][3]={{1,3,5},{2,4,6}}; p=(int*)malloc(100); amovep(p,a,3); printf("%d%d\n",p[2],p[5]);free(p); }

    A.56

    B.25

    C.34

    D.程序错误


    正确答案:A
    解析:本题main函数中定义了指针P和二维数组a,通过函数amovep将数组的值存入指针P所指向的存储单元中,a的各元素分别为:a[0]=1,a[o][1]=3,a[0][2]=5,……,a[2][0]=0,a[2][1]=0,a[2][2]=0。通过malloc()函数给指针分配内存空间,free()函数用于释放指针变量所用内存空间。在主函数中通过amovep(p,a,3)讽用函数amovcp,使得实参P与形参P,实参数组a与形参中指向数组的指针变量共用同一存储空间。最后输出p[2],p[5]为56。

  • 第5题:

    以下程序输出正确的是______。 amovep(int *p,int(*A) [3],int n) {int i,j; for(i=0;i<n;i++) for(j=0;j<n;j++){ *p=a[i][j];p++} } main() {int *p,a[3][3]={{1,3,5},{2,4,6}}; p=(int*)malloc(100); amovep(p,a,3); printf("%d%d\n",p[2],p[5]);free(p); }

    A.56

    B.25

    C.34

    D.程序错误


    正确答案:A
    解析:本题main函数中定义了指针p和二维数组a,通过函数amovep将数组的值存入指针p所指向的存储单元中,a的各元素分别为:a[0][0]=1,a[0][1]=3,a[0][2]=5,a[1][0]=2,a[1][1]=4,a[1][2]=6,a[2][0]=0,a[2][1]=0。通过malloc()函数给指针分配内存空间,free()函数用于释放指针变量所用内存空间。在主函数中通过amovep(p,a,3)调用函数amovep,使得实参p与形参p,实参数组a与形参中指向数组的指针变量共用同一存储空间。最后输出p[2],p[5]为56。