C++程序设计(谭浩强完整版)-结构体共同体和枚举类型指针和引用.ppt
文本预览下载声明
* STU *creat( ) { STU *head, *p1,*p2; n=0; head=NULL; p1=p2=new student; cinp1-nump1-score; while (p1-num!=0) { n=n+1; if (n= =1) head=p1; else p2-next=p1; p2=p1; p1=new student; cinp1-nump1-score; } p2-next=NULL; return(head); } n为全局变量,表示结点数 开辟新结点 向新结点输入数据 不满足输入条件,结束 * 2、输出链表 void print(STU * head) { STU *p; p=head; while(p!=NULL) { coutp-num‘\t’p-score‘\n’; p=p-next; } } A 3000H 2000H 3000H B 3050H 3050H C 6000H 6000H D 2090H 2090H B ‘\0’ head 输出数据 p指向下一结点 * 以下程序求两个数的大者,请填空。 void main(void ) { int *p1, *p2; p1=___________; p2=___________; cin_______________; if (*p2*p1) *p1=*p2; delete p2; cout“max=” _______endl; new int *p1 new int *p1*p2 * main( ) { int *s1, *s2; sub1(s1,s2); sub2(s1,s2); cout*s1‘\t’*s2endl; sub3(s1, s2); sub4(s1,s2); cout*s1‘\t’*s2endl; } sub1( int **p1, int **p2) { *p1=new int ; *p2=new int ; } sub2(int **p1, int **p2) { **p1=10; **p2=20; **p1=**p2; } sub3(int *p1, int *p2) { p1=new int ; p2=new int ; } sub4( int *p1, int *p2) { *p1=1; *p2=2; *p2=*p1; } s1 s1 p1 s1 *s1 20 20 1 1 * 引用 对变量起另外一个名字 (外号),这个名字称为该变量的引用。 类型 引用变量名 = 原变量名; 其中原变量名必须是一个已定义过的变量。如: int max ; int refmax=max; refmax并没有重新在内存中开辟单元,只是引用max的单元。max与refmax在内存中占用同一地址,即同一地址两个名字。 * max refmax 5 10 int max ; int refmax=max; max=5 ; 20 refmax=10; refmax=max+refmax; max与refmax同一地址 * 对引用类型的变量,说明以下几点: 1、引用在定义的时候要初始化。 2、对引用的操作就是对被引用的变量的操作。 int refmax; int refmax=max; 错误,没有具体的引用对象 max是已定义过的变量 3、 引用类型变量的初始化值不能是一个常数。 如:int ref1 = 5; // 是错误的。 int ref=i; * 4、引用同变量一样有地址,可以对其地址进行操作,即将其地址赋给一指针。 int a, *p; int m=a; a p m 10 p=m; *p=10; m 是变量的引用 是变量的地址 * 5、可以用动态分配的内存空间来初始化一个引用变量。 float reff = * new float ; //用new开辟一个空间,取一个别名reff reff= 200; //给空间赋值 cout reff ; //输出200 delete reff; //收回这个空间 这个空间只有别名,但程序可以引用到。 float *p,
显示全部