C 调用函数包含指针

C 调用函数包含指针,c,pointers,C,Pointers,假设我们得到一个包含指针的void函数: 无效订单(双*smp,双*lgp) 当我们在main中调用函数时,它是 订单(&num1和&num2) 我的问题是,当我们定义函数时,它是“double*”,这意味着它是指针对象的一个值。但是当我们调用函数时,它是“&num1”,这是num1的地址。他们怎么搭配 是否与我们定义指针时相同: double*p=&value,记住它就行了?这个*根据它的使用位置有不同的含义。在变量定义中,它不是去引用指针(获取指针指向的值),而是说它是指向指定类型的指针 d

假设我们得到一个包含指针的void函数:
无效订单(双*smp,双*lgp)

当我们在main中调用函数时,它是
订单(&num1和&num2)

我的问题是,当我们定义函数时,它是“
double*
”,这意味着它是指针对象的一个值。但是当我们调用函数时,它是“
&num1
”,这是num1的地址。他们怎么搭配

是否与我们定义指针时相同:
double*p=&value,记住它就行了?

这个
*
根据它的使用位置有不同的含义。在变量定义中,它不是去引用指针(获取指针指向的值),而是说它是指向指定类型的指针

double *p = &value; // * is used to declare a pointer
printf("%f", *p);   // * is used to get the value p is pointing to
int i = 2*3;        // * is used as a multiplication operator

指针经常令人困惑,因为在定义它时:

双*开关电源

它的意思是“smp是一个包含双精度地址的变量”

但是等你回来的时候

*开关电源

它的意思是“我想要smp中包含的地址所指向的双精度值”

在这里你混合了两者:意思是非常不同的,即使它是相同的语法。
因此,当您定义函数时,*字符并不意味着它是一个值,在本例中,它只是意味着它是一个将接收地址的指针。

你说它是指针对象的值是什么意思?什么????什么是“包含指针的空函数”?double*是一个双指针,“指针对象的值”是什么?没有意义。我认为在
void order(double*smp,double*lgp)
中,
double*smp
意味着我们定义了指向指针对象的名为smp的指针?不,这意味着第一个参数smp是双指针。请阅读有关指针的内容,特别是什么是指针?。THX对我来说更有意义。因此,当我们定义一个指针时,
*
只是表示我们正在定义一个指针。在
无效顺序(double*smp,double*lgp)
中,两个参数都是地址,当我们调用函数时,
顺序(&num1,&num2)它们仍然是地址。谢谢@干扰器X2