c - 应该通过引用调用的函数不起作用

标签 c pointers pass-by-reference

我需要通过引用调用返回值,

#include<stdio.h>
#include<conio.h>
#include<math.h>

int Splitting(int *,int);
int main()
{
    int x = 1234567891,x1=x,a1,b1,count=0;
    a1=Splitting(&x,count);
    b1=x;
    printf("a1=%d,b1=%d",a1,b1);
}


int Splitting(int *x,int count)
{
    int x1=*x,x2, a = 0, b = 0, a1 = 0, b1 = 0;

    /**Some code logic used**/
    a1=12345,b1=67891;
    x1 =(int *) a1;
    return b1;
}

我需要返回值a1b1

其中 b1 通过 return 语句,a1 通过引用调用。所以我需要设置值x1=a1;它不起作用。

请提出建议。

最佳答案

当您应该在代码中分配 x 时,您却分配了 x1

而不是

x1 =(int *) a1;

*x = a1;

关于c - 应该通过引用调用的函数不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32322878/

相关文章:

c - libpcap: pcap_breakloop() 导致内存泄漏

c - c中的链表添加到前面

c - 函数指针 : why is (*fptr)(6, 7) 与 (fptr)(6,7) 相同,如果函数是 add(int , int )

通过引用的 JavaScript 数组/函数对象

r - 向量上的修改时复制语义不会附加在循环中。为什么?

c++ - 如何将函数回调传递给类成员?

c - 用c逐个字符打印字符串

c - 使用 c 中函数的输出声明字符串变量

c - 寄存器和 volatile 有什么区别?什么时候使用使用哪一个? volatile 寄存器变量的含义是什么?

c++ - 交换指针值