如何将数值传递给需要C中指针值的函数

时间:2017-03-17 10:53:42

标签: c

我的功能是public class MainActivity extends AppCompatActivity { @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); if (savedInstanceState == null) { getFragmentManager() .beginTransaction() .replace(R.id.frame, new Frag()) .commit(); } } }

我想把它称为void x(int *y);x(&6);,我不想定义一个整数并给它分配6,我想要单行。

2 个答案:

答案 0 :(得分:4)

您需要的是compound literals

#include <stdio.h>

void x(const int *y)
{
    printf("%d\n", *y);
}

int main(void)
{
    x(&(int){6});

    return 0;
}

答案 1 :(得分:3)

这可以使用复合文字来完成:

x((int []){6});

或更简单:

x(&(int){6});

当然,被调用的函数不能对指向数据的寿命做出任何假设,因为它会在调用返回时消失。