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

如何将数值传递到需要C中指针值的函数中,c,C,我的函数是void x(int*y) 我想把它叫做x(&6)或x({6}),我不想定义一个整数并给它赋值6,我想要一行。这可以使用复合文字来完成: x((int []){6}); 或者更简单一些: x(&(int){6}); 当然,被调用的函数不能对指向的数据的寿命做出任何假设,因为它将在调用返回时消失 你需要的是 #包括 空x(常数整数*y) { printf(“%d\n”,*y); } 内部主(空) { x(&(int){6}); 返回0; } 完全不清楚。请详细说明一下,否则问

我的函数是
void x(int*y)


我想把它叫做
x(&6)
x({6}),我不想定义一个整数并给它赋值6,我想要一行。

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

x((int []){6});
或者更简单一些:

x(&(int){6});
当然,被调用的函数不能对指向的数据的寿命做出任何假设,因为它将在调用返回时消失

你需要的是

#包括
空x(常数整数*y)
{
printf(“%d\n”,*y);
}
内部主(空)
{
x(&(int){6});
返回0;
}

完全不清楚。请详细说明一下,否则问题将因不清楚而结束,因为NC不是Fortran。C不是Fortran。C不是Fortran。@2501:我相信复合文字就是OP所要求的,不管它在功能上等同于什么。@Groo如果你必须相信(读作:假设,或解释模糊的陈述)OP所要求的,那么正确的做法就是投票结束。@2501:大多数新手问题都需要以某种方式“解释”。所以,让我换一种说法:据我所知,OP要求的是复合文字。另外两位回答者这样理解这个问题。甚至你也这么做了,因为你在评论中提到了复合文字。但是,如果有其他方法来解释这个问题,请分享它。+1还可以指出,复合文字的生存期并不比同一范围内的临时变量好。该函数仍将处理指向堆栈地址的指针。这很奇怪,而且我似乎也有一个指针/
#include <stdio.h>

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

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

    return 0;
}