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;
}