文档介绍:c 语 言 归 纳
结构体
#definen STUDENT struct student
student
{ int nun ;
char name[20] ;
char sex ;
int age ;
float score ;
char addr[30];
};
方式一: STUDENT student1 ,student2;
方式二: struct student
{ int nun ;
char name[20] ;
char sex ;
int age ;
float score ;
char addr[30];
} student1 ,student2 ;
错误方式:printf(“%d %s %c %d %f %s\n”,student1) ;
正确方式: ① ②(*p)->成员名③p->成员名
例:=1001 ;
main()
{ struct student
{int num ;
char name[20] ;
char sex ;
char addr[30];
} a={ 89031 ,”li xiao” ,’m’ ,”101 beijing road “};
printf(“no:%ld\n name:%s\n sex:%c\n address:%s\n”,,,,);
typedef定义类型
typedef 已有类型 新定义类型
例:typedef int COUNT ;
typedef student STD ;
指针
直接访问:按变量地址存取变量的方法;
间接访问:变量地址存放在另一个内存单元中;
指针:即一个变量的地址;
指针变量:一个专门存放另一个变量地址;
定义方法:
int i , j ;
int *pointer1 , *porinter2;
指针变量赋值: pointer1=&I ; pointer2=&j ;
I 值
3
地址2000
pointer1 I
2000 3
地址:2000
指针变量引用:
(1)&取地址运算符 例&a为变量a的地址
(2)*指针运算符(间接访问)例*p为指针变量p所指向的变量
*&a=a ( *poinrer1) ++ 相当于a++
指针运算用于数组
p=&a[0] 指向数组第一个元素
p=a 同上;
定义时int *p=a;
“数组的指针” 是指数组的起始地址;
“数组元素的指针”是指数组元素的地址;
C语言规定 p+1就是指向数组下一个元素
p+I ;a+I 就是a[I]的地址,指向a数组第I个元素
* (p+I) 或* (a+I),是 p+I或 a+I 指向的数组元素 a[I](其中a为数组a的首地址)
指向数组的指针变量也可以带下标,如p[I]等价于* (p+I)