结构指针是指向结构的指针
发布时间:2014/6/7 20:24:23 访问次数:854
结构指针是指向结构的指针。它由一 INA105KP个加在结构变量名前的“木”操作符来定义,例如用前面已说明的结构定义一个结构指针如下:
也可以省略结构指针名只作结构说明,然后再用下面的语句定义结构指针:
struct string*student;
使用结构指针对结构成员的访问,与结构变量对结构成员的访问在表达式上有所不同。结构指针对结构成员的访问形式如下:
结构指针名一>结构成员
例如要给上面定义的结构中name和age赋值,可以用下面语句:
实际上,student->name就是(*student).name的缩写形式。
需要指出的是结构指针是指向结构的一个指针,即结构中第一个成员的首地址,因此在使用之前应该对结构指针初始化,即分配整个结构长度的字节空间,这可用下面的函数完成,仍以上例来说明,例如:
student=(struct string*)malloc(size of (struct string》;
size of (struct string)臼动求取string结构的字节长度,malloc()函数定义了一个大小为结构长度的内存区域,然后将其首地址作为结构指针返回。注意以下两点:
(1)结构作为一种数据类型,定义的结构变量或结构指针变量同样有局部变量和全局变量之分,视定义的位置而定。
(2)结构变量名不是指向该结构的地址,这与数组名含义不同,因此结构中第一个成员的首地址是&【结构变量名]。
结构指针是指向结构的指针。它由一 INA105KP个加在结构变量名前的“木”操作符来定义,例如用前面已说明的结构定义一个结构指针如下:
也可以省略结构指针名只作结构说明,然后再用下面的语句定义结构指针:
struct string*student;
使用结构指针对结构成员的访问,与结构变量对结构成员的访问在表达式上有所不同。结构指针对结构成员的访问形式如下:
结构指针名一>结构成员
例如要给上面定义的结构中name和age赋值,可以用下面语句:
实际上,student->name就是(*student).name的缩写形式。
需要指出的是结构指针是指向结构的一个指针,即结构中第一个成员的首地址,因此在使用之前应该对结构指针初始化,即分配整个结构长度的字节空间,这可用下面的函数完成,仍以上例来说明,例如:
student=(struct string*)malloc(size of (struct string》;
size of (struct string)臼动求取string结构的字节长度,malloc()函数定义了一个大小为结构长度的内存区域,然后将其首地址作为结构指针返回。注意以下两点:
(1)结构作为一种数据类型,定义的结构变量或结构指针变量同样有局部变量和全局变量之分,视定义的位置而定。
(2)结构变量名不是指向该结构的地址,这与数组名含义不同,因此结构中第一个成员的首地址是&【结构变量名]。
上一篇:结构类型及变量的定义
上一篇:共用体类型的单元形式