声明一个指向结构的指针

Declaring a pointer to a structure

有什么区别

struct point var, *varptr; 

struct point *var;

我们可以只使用第二个而不给它分配任何变量地址吗?

在第一个例子中,var是内存中数据类型为struct point的变量,*varptr是指向内存中数据的ADDRESS的变量“结构点”的类型。

第二个例子中的*var与第一个例子中的*varptr相同。它指向数据类型为“struct point”的内存位置。

不同的是这条语句创建了两个变量:

struct point var, *varptr;

它与使用 2 个语句具有相同的效果:

struct point var; // type struct point
struct point *varptr; // type pointer to struct point

这条语句创建了 1 个变量:

struct point *var; // type pointer to struct point

Can we just use the second one without assigning any variable's address to it?

是的,你可以使用第二个,但你会希望在取消引用指针之前将其初始化为某些东西(通常是另一个变量的地址)。