package main import "fmt" func main() { type student struct { id int name string sex byte //注意这里代表字符符,在初始化的时候这个值要用单引号括起来 age int addr string } //对结构体进行初始化,有两种,第一种,顺序初始化,不要忘记&取地址 , , "NJ"} fmt.Println("s1 = ", *p1) fmt.Pri
C 语言中指针的操作非常灵活,它也能指向结构体变量对结构体变量进行操作.在学习结构指针之前,需要再次加深对指针的认识.声明指针变量时所使用的数据类型修饰符实际上的作用是定义指针访问内存的范围,如果指针定义为整型,那么该指针访问内存的范围就是整型变量在内存中所占用的空间大小.虽然每次尝试将指针变量所在存储的内存地址输出会发现,任何类型的内存地址长度都一样,但不同类型间不能相互复制,只有空值型除外.因此在使用指针操作结构体时,一定要确定指针所定义的数据类型与结构体的数据类型相同. 7.3.1 指向结
类型 普通指针 指针数组(非指针类型) 数组指针 结构体指针 函数指针 二重指针 定义方式 int *p; int *p[5]; int (*p)[5]; int a[3][5]; struct{...int i;..}a, *p int (*p)(int,int); int add(int a,int b) int **p1; int *p2; int *p3[5]; 赋值方式 p=&a; -- p=a; p=&a p=add; p1=&p2; p1=&p3; 解引用 *
在C语言中几乎可以创建指向任何类型的指针,包括用户自定义的类型.当然也可以指向结构体,先看一个小案例: #include <stdio.h> #include <string.h> typedef struct PERSON { int age; int height; ]; } Person; int main (){ Person p = {, , "phper"}; //别名 Person *p_s = &p; //定义结构体指针 printf(&