为什么所有函数的结果都不一样,除了函数参数的顺序?
例如: 我的代码
#include <stdio.h>
#define MAX_SIZE 100
void sum2(float *list, int n);
void sum3(int n, float *list);
float input[MAX_SIZE];
int main(void){
printf(" sum2(input, MAX_SIZE) \n");
sum2(input, MAX_SIZE);
printf(" sum3(MAX_SIZE, input) \n");
sum3(MAX_SIZE, input);
}
void sum2(float *list, int n)
{
printf("&list \t= %p\n\n", &list);
}
void sum3(int n, float *list){
printf("&list \t= %p\n\n", &list);
}
输出
sum2(input, MAX_SIZE)
&list = 0x16fc5b268
sum3(MAX_SIZE, input)
&list = 0x16fc5b260
期待
sum2(input, MAX_SIZE)
&list = 0x16fc5b268
sum3(MAX_SIZE, input)
&list = 0x16fc5b268
和上面的代码一样,除了参数的顺序不同,其他结果都是同一个函数输出的
我试图找到类似的问题,但找不到。我觉得如果是同值函数,不管参数顺序如何,都应该输出同一个值。我的看法有错误吗? 供您参考,我的编译器是 Apple clang 版本 14.0.0 (clang-1400.0.29.202)。 谢谢你的任何答案。