首页 > 代码库 > 指针、结构体

指针、结构体

 指针的应用,根据数据可分为变量和常量占有一定数目连续的储存单位,以首地址作称为数据的地址。变量的地址称为指针,存放地址的变量称为指针变量。指针也是一种变量,也占有储存单位 特殊之处在于它存放是另一个变量所占存储单位的起始地址。 
定义初始化  intx=10 ,*p=&x,反之错误
对于复杂形式的指针的判断,找到标示符,由关键字向右看遇到)就向左...遇到( 就是函数。
int (*p ) [3] ;  double * p [5] ;    int *p ( float a);    
指向数组的整形指针,存储指针的 double型数组,返回值为int地址的指针函数;
 pc=s对字符指针变量pc赋值时期指向s数组
pc+i 结果为pc后面第i个元素的地址
*(pc+1)        为pc后面第i个元素

 *++pc     为pc加1之后所指向的元素

 ++*pc      为pc所指向元素加1
*pc++  pc所指向的元素,然后pc加1
 (*pc)++ pc所指向的元素  然后pc所指向元素加1
&pc  为字符指针pc的地址 ,类型为char**

结构体的声明  
1.  struct   结构类型名 {
   成员声明表 
};
  数据类型1 成员名11,.... 成员名1k;

2.每个声明允许用逗号为分隔符说明多个同类型的成员变量。

3.同一结构内成员不能同名,但可以与外部变量同名。成员数据类型可以是除本结构类型以外的其它任何类型。

4.结构类型和结构变量分别声明 存储类型 struct 结构类型名 结构变量列表
extern static auto  register  int——node a,b,c;

5.同时声明  存储类型 struct {成员声明表}结构变量列表;
static struct point {                 typedef struct point {
int x;                                     int x;
int y;                                    int y;
}p1,p2;                                  }point;

6.结构变量的初始化 
struct stu_study{char num[5];
char name[9];char sex;
int English;
int math,physics,C;
}wang={"1234",wangwu",‘m‘,81,92,76,85};

7.结构体的引用包括对结构变量的引用和对结构变量成员的引用俩方面。
对结构变量的引用包括结构变量的复制操作和间访操作,以及结构变量作为函数的参数及返回值。  对结构变量中的成员引用则需要通过成员选择运算符“.”来实现

8.通过成员选择运算符“->”访问结构变量的成员
结构指针名 -> 结构成员名
下面表达式是指针pm所指变量的结构成员m的年份成员year的引用;
pm->pa->year     m.a.year
(*pm).pa->year   m.pa->year
pa->a.year          (*pm->pa).year
(*m.pa).year       (*(*pm).pa).year
它们的数据类型都是int型值则由成员year的值决定。