【发布时间】:2022-11-26 19:30:33
【问题描述】:
我想使用指针打印数组的数据,所以我尝试将数组的地址保存在指针中。但是指针不打印数据。稍后我也会打印第二个数组,因此声明了一些额外的变量。
输出:
代码
//print 1D array and 2D array
#include<stdio.h>
#include<stdlib.h>
int Arr1[10];
int Arr2[10][10];
int i, j, n1, n2;
int (*p1)[10];
int (*p2)[10][10];
int main()
{
printf("For the 1D Array: \n");
printf("Enter the number of elements you want to add: ");
scanf("%d", &n1);
printf("Enter the data for the elements:\n");
for(i=0;i<n1;i++)
{
scanf("%d", &Arr1[i]);
}
printf("Displaying Array:\n");
for(i=0;i<n1;i++)
{
printf("%d\t", Arr1[i]);
}
printf("\nDisplaying using pointer: \n");
p1=Arr1;
printf("1D Array is: \n");
for(i=0;i<n1;i++)
{
printf("Arr[%d] is %d\t", i, *(p1[i]));
printf("\nAddress of %d th array is %u\n", i, p1[i]);
}
}
【问题讨论】:
-
Arr1是数组的地址!printf("Arr[%d] is %d\t", i, *(Arr1+i))作品
标签: arrays c pointers implicit-conversion pointer-arithmetic