C语言,指针数组:怎么把arr[1]以%d的格式打印出来?

如题所述

arr是指针数组,arr[1]的值是一个地址,这里对应数组名b(数组名表示数组地址的常量)。

所以打印输出arr[1]要用%p。而不是%d。

#include <stdio.h>

int main()

{

    int a[]={10};

    int b[]={20};

    int c[]={30};

    int *arr[]={a,b,c};

    printf("数组名b表示其数组首地址:%p\n",b[0]);

    printf("arr[1]就是b数组的首地址:%p\n",arr[1]);

    return 0;

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-10-12
指针数组相当于二维数组
printf("%d", arr[1][0]); //打印其中的一个元素
第2个回答  2021-12-18
因为指针数组中的每一个元素都是一个指针,所以要把arr[1]以%d的格式打印出来,可以在arr[1]的前面加上一个*号即printf("%d",* arr[1]);
或printf("%d", arr[1][0]);
第3个回答  2021-12-22
因为arr[1]是一个int*类型的指针,要按%d格式打印需要进行强制类型转换,如:
printf("%d",(int)arr[1]);