我对 C 中的指针很陌生,我有一个练习题,我不明白为什么答案是这样。代码如下:
#include <stdio.h>
#include <stdlib.h>
void changeValue(int *valuePassed)
{
*valuePassed = 100;
}
int main()
{
int testValue = 9;
changeValue(&testValue);
printf("%d\n", testValue);
}
这最终打印了 100,我不知道为什么。
首先,函数 changeValue 是传递一个指针变量还是传递地址 valuePassed 的值(据我所知,这是两个不同的东西)。其次,*valuePassed = 100 行将 valuePassed 位置的值设置为 100,对吗?但是 valuePassed 没有被分配地址。那么如果将testValue(&testValue)的地址传入changeValue函数,100是怎么打印出来的呢?