【发布时间】:2016-03-21 07:57:29
【问题描述】:
C 中的 * 是什么意思?我看到它在声明 char 或 FILE 变量时使用 (char = *test) 这如何改变变量的行为方式?
【问题讨论】:
-
我不明白反对意见。对于刚刚学习 C 的人来说,与“C 中的指针:何时使用 ...”相比,这是一个更相关的问题,因为后者暗示您已经了解指针。
标签: c
C 中的 * 是什么意思?我看到它在声明 char 或 FILE 变量时使用 (char = *test) 这如何改变变量的行为方式?
【问题讨论】:
标签: c
它取消引用一个指针:
*ptr = 42; // access the value that ptr points to, and set it to 42
或者它声明一个指针:
int* ptr; // the type of ptr is pointer to int
【讨论】:
*p = 42 不分配给p,它分配给*p(即p 指向的东西)。是的,如果p 没有指向有效内存,那是未定义的行为。
这种*被称为“间接运算符”,*test的意思是“从指针test指向的地方获取数据”。
char 保留用作关键字,因此除非将 char 定义为宏,否则 char = *test 不会编译。
【讨论】: