【发布时间】:2014-05-09 11:38:26
【问题描述】:
我声明了一个变量(TEST 类型,包含一个静态数组)并调用了几个函数,传递了一个指向该变量的指针。
typedef struct
{
char data[50];
} TEST;
int main(int argc,char *argv[])
{
TEST *ptr = malloc(sizeof(TEST));
func_one(ptr);
printf("data: %s\n", ptr->data);
}
void func_one(TEST *ptr)
{
func_two(ptr);
}
void func_two(TEST *ptr)
{
strcpy(ptr->data, "hello");
}
上面的打印语句会打印“hello”吗?我的程序当前打印“hello”,但我很困惑,因为据我了解,我知道 ptr 是按值传递的,而不是按引用传递的。
【问题讨论】:
标签: c pointers pass-by-reference