gpt4 book ai didi

c - 如何使用c中的指针和函数打印存储在数组中的值

转载 作者:太空宇宙 更新时间:2023-11-04 03:18:36 25 4
gpt4 key购买 nike

我是 c 中指针的新手,我使用指针完成了以下简单的数组程序。

#include<stdio.h>
void disp(int *);
void show(int a);

int main()
{
int i;
int marks[]={55,65,75,56,78,78,90};
for(i=0;i<7;i++)
disp(&marks[i]);
return 0;
}
void disp(int *n)
{
show((int) &n);
}
void show(int a)
{
printf("%d",*(&a));
}

我想获取存储在数组中的所有这些值作为输出,但我只获取数组中这些存储值的内存编号。请帮助我如何获取数组值作为输出。

最佳答案

我猜你想玩指针。

请注意 void show(int a) 需要 int 值。因此,您无需对 a 执行任何操作即可打印它。 *(&a) 等同于a&a 获取a 的地址并且* 解引用指针。

当然,进入 disp(int *n) 的指针可能会在途中传递并在稍后取消引用。这通过在 disp 中调用 show1 函数来说明。

#include <stdio.h>
#include <string.h>

void disp(int *); // function disp receives the address on int value

void show(int a);
void show1(int *a); // function show1 will receive the address of n

int main()
{
int i;
int marks[]={55,65,75,56,78,78,90};

for(i=0;i<7;i++) // 7 since you want to print all elements

disp( &marks[i] );

return 0;
}

void disp(int *n)
{
show(*n); // show expects the 'int' value therefore we have to dereference the pointer.
show1(n); // function show1 will receive the address of n and will dereference the pointer inside the function
}

void show(int a)
{
printf("%d ",a);
}

void show1(int *n) // show1 gives the output of the value that is stored in address n
{
printf("%d\n",*n); // dereference the address n to print the value
}

输出:

55 55
65 65
75 75
56 56
78 78
78 78
90 90

关于c - 如何使用c中的指针和函数打印存储在数组中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48843723/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com