C 应该调用什么函数f()来产生不同的结果?

C 应该调用什么函数f()来产生不同的结果?,c,C,考虑以下代码: void f(int *p1, int *p2) { *p1 = 5; *p2 = 6; printf("%d %d\n", *p1, *p2); } 我有一个问题,询问如何调用f()来打印除包含5 6的行之外的内容。到目前为止,我所做的最好的尝试是使f()打印“分段错误”,但我认为这不是解决这个问题的合适答案。任何暗示都将不胜感激 考虑如果在p1和p2中传递相同的地址会发生什么 考虑如果在p1和p2中传递相同的地址会发生什么 这将打印“6 6”而

考虑以下代码:

void f(int *p1, int *p2) {
     *p1 = 5;
     *p2 = 6;
     printf("%d %d\n", *p1, *p2);
}

我有一个问题,询问如何调用f()来打印除包含5 6的行之外的内容。到目前为止,我所做的最好的尝试是使f()打印“分段错误”,但我认为这不是解决这个问题的合适答案。任何暗示都将不胜感激

考虑如果在
p1
p2
中传递相同的地址会发生什么

考虑如果在
p1
p2
中传递相同的地址会发生什么

这将打印“6 6”而不是“5 6”

这将打印“6 6”而不是“5 6”

#包括
空f(int*p1,int*p2){
*p1=5;
*p2=6;
printf(“%d%d\n”、*p1、*p2);
}
int main()
{
int data1=1,data2=2;
f(数据1和数据2);
返回0;
}
就这样。函数需要两个指针作为其参数。

\include
空f(int*p1,int*p2){
*p1=5;
*p2=6;
printf(“%d%d\n”、*p1、*p2);
}
int main()
{
int data1=1,data2=2;
f(数据1和数据2);
返回0;
}

就这样。函数需要两个指针作为其参数。

f(&x,&x)
5
的第一个赋值将是无意义的。
char buf[10];f(&buf[0]、&buf[1])
可能导致buf故障或其他有趣的问题。
f(&x,&x)
,对
5
的第一次赋值将毫无意义。
char buf[10];f(&buf[0]、&buf[1])可能导致buf故障或其他有趣的事情。太棒了!你真棒!刚意识到我有多傻,别想:)太棒了!你真棒!刚意识到我有多傻,别想:)
data1
data2
通过
f()
设置为5和6。在调用之前将它们设置为1和2不会改变这一点。
data1
data2
通过
f()
将它们设置为5和6。在调用之前将它们设置为1和2不会改变这一点。
int n = 1;
f(&n, &n);
#include <stdio.h>

void f(int *p1, int *p2) {
     *p1 = 5;
     *p2 = 6;
     printf("%d %d\n", *p1, *p2);
}

int main()
{
    int data1 = 1, data2 = 2;
    f(&data1, &data2);
    return 0;
}