c语言-指针教案
* * * * * * * * * * * * * * * * * * * * * * * * * * * * #include void main( ) { char st[20],*pc; pc=st; scanf(“%s”,pc); printf(“%s\n”,pc); } 指向字符串指针变量的应用 pc 3000 例6.9 输入一字符串并输出,用字符指针变量来实现。 st[0] st[1] st[18] ….. w \0 … ! e #include void main( ) { char a[80],b[80],*pa,*pb; pa=a; pb=b; gets(pa); while(*pa!=’\0’) { *pb=*pa; pa++; pb++; } *pb=’\0’; printf(“%s”,b) ;} 例 6.10 将字符串a复制到字符串b。 \0 w e l … \0 pa pb a[0] b[0] #include void main( ) { char *s1="C language"; s1+=2; printf("%s\n",s1); } 例6.11 输出字符串中的部分数据 运行结果 language #include “stdio.h” void main( ) { void del_ch(char *p,char ch ); char str[80],*pt,ch; printf(“pls enter a str:\n”); gets(str); pt=str; printf(“pls enter the char deleted:\n”); ch=getchar(); del_ch(pt,ch); printf(“the new stirng is:\n%s\n”,str);} 例6.12 有一行字符,要求删去指定的字符。例如:“He has 350$.”如果删去“0”,则变为“He has 35$”。 void del_ch(char *p,char ch) { char *q=p; for(; *p!=‘\0’;p++) if(*p!=ch) {*q=*p; q++; } *q=‘\0’; } w e l c o m e \0 p q q p p 指向结构体变量的指针 定义了一个struct stud类型,可用下面形式定义一个指向这种类型数据的指针变量: struct stud *p; 用指针变量p可以指向任一个属于struct stud类型的结构体变量。 第五节 指针与结构体 例6.12-1 定义指向结构体的指针变量 #include "stdio.h" #include "string.h" struct stud { long num; char name[20]; char gender; int age; float score; }; void main() { struct stud student1; struct stud *p; p=&student1; student1.num=970101; strcpy(student1.name,"Liu Li"); student1. gender ='M'; student1.age=16; student1.score=95.5; printf("No:%ld\nname:%s\n gender :%c\n age:%d\nscore:%6.2f\n",student1.num, student1.name,student1. gender,student1.age, student1.score); printf("\nNo:%ld\nname:%s\n gender :%c\n age:%d\nscore:%6.2f\n", (*p).num, (*p).name,(*p). gender,(*p).age,(*p).score); } 程序运行结果如下: No:970101 name:Liu Li gender:M age:16 score: 95.50 No:9