C-通过引用传递?

杰希·卡杰(Jahee Kaje)

我来自一种占主导地位的面向对象的编程语言,试图进一步了解C的功能,因此决定制作一个小程序来实现这一点。

我遇到的问题是使用DI通常可以解决的问题,如何将值的引用传递给另一个函数,以便它可以在不使用全局变量的情况下对其执行算术运算?

考虑以下程序:

#include <stdio.h>
#include <stdlib.h>

int doStuff(int v)
{
    v = v + 10; // main->value = 10
}

int otherStuff(int v)
{
    v = v - 10; // main->value = 0
}

int main()
{
    int value = 0;
    int stop = 0;

    do
    {
        printf(" %i should be 0 \n", value);

        doStuff(value); // "value" = 10
        printf(" %i should be 10 \n", value);

        otherStuff(value); // "value" = 0
        printf(" %i should be 0 \n", value);

        exit(0);

        if(value >= 10)
        {
            stop = 1;
        }

    } while(!stop);

}

输出:

0 should be 0
0 should be 10
0 should be 0
P__J支持波兰的妇女

将它们作为指针传递。如果不返回值,则将函数声明为void或返回某些内容

void doStuff(int *v)
{
    *v = *v + 10; // main->value = 10
}

void otherStuff(int *v)
{
    *v = *v - 10; // main->value = 0
}

并在主要

        doStuff(&value); // "value" = 10
/*....*/
        otherStuff(&value); // "value" = 0

函数中的int * v表示v是指向int对象的指针。在函数调用&value中,将指针(地址)传递给该值。在函数中取消对指针v的引用-所有插入实际上都是对该值进行的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C ++通过引用函数传递

来自分类Dev

指针并通过引用传递c ++

来自分类Dev

在C ++中通过引用传递?

来自分类Dev

通过引用从C ++ \ CLI传递到C ++

来自分类Dev

C ++通过引用传递而不会更改值

来自分类Dev

C ++通过引用传递和转换混乱

来自分类Dev

通过引用传递数组并修改值C ++

来自分类Dev

通过引用在C中传递指针

来自分类Dev

在C#中通过引用传递属性

来自分类Dev

在C中通过引用传递多维数组

来自分类Java

Java vs C ++通过引用传递

来自分类Dev

在C ++中通过引用传递数组

来自分类Dev

C:通过引用传递自动变量

来自分类Dev

通过C ++中的引用选项传递

来自分类Dev

c++:通过引用传递数组

来自分类Dev

C ++通过引用传递不更改参数

来自分类Dev

在C ++上通过引用传递值

来自分类Dev

C ++是否可以“通过引用传递”?

来自分类Dev

在C ++中通过引用传递对象

来自分类Dev

C#中如何通过引用传递

来自分类Dev

C ++ lambda函数通过引用传递问题

来自分类Dev

C ++通过引用和临时变量传递

来自分类Dev

在C中通过引用传递数组

来自分类Dev

通过引用传递C ++产生奇怪的错误

来自分类Dev

C ++如何通过引用函数传递数组

来自分类Dev

如何通过引用将int从C#传递到C ++?

来自分类Dev

通过引用传递或在C中使用全局变量

来自分类Dev

对象似乎没有通过C ++的引用传递

来自分类Dev

通过引用数组传递给C ++中的模板函数