实验7 指针的应用
【实验目的】
1掌握指针的使用方法。 ???? 2掌握引用的使用方法。 ???? 3学习const修饰符在指针中的使用方法。 ???? 4学习指针在数组中的使用方法。
5掌握指针数组的使用方法。?? 6学习指针在函数中的使用方法。 ???? 7学习使用指针处理字符串的方法。
8学习使用new和delete动态分配内存。
【实验内容】
⒈编程输出二维数组a[][2]={11,22,33,44,55 }各数,并输出该数组的每行的首地址及每个元数的地址。
#include <iostream.h>
void main()
{ int a[][2]={11,22,33,44,55};
int i,j,*p[3]={a[0],a[1],a[2]};
cout<<"数组a每行的首地址为:\n";
for(i=0;i<3;i++) cout<<p[i]<<" ";
cout<<endl;
cout<<"数组a每个元素的地址为:\n";
for(i=0;i<3;i++)
{for(j=0;j<2;j++) cout<<*(p+i)+j<<" ";
cout<<endl; }
cout<<endl;
cout<<"数组a每个元素的值为:\n";
for(i=0;i<3;i++)
{ for(j=0;j<2;j++) cout<<*(*(p+i)+j)<<" ";
cout<<endl; }
}
⒉使用指向指针的指针输出计算机课程名("Visual Basic","Visual C++", "Delphi",
"Power Build","Visual Foxpro")
#include <iostream.h>
void main()
{ char *name[]={"Visual Basic","Visual C++","Delphi",
"Power Build","Visual Foxpro"};
char **p =name;
for(int i=0;i<5;i++)
cout<<*(p+i)<<endl;
}
⒊从键盘输入一个整数,当该数为偶数时,用函数的指针调用函数sum1输出其不大于该数的偶数和;当该数为奇数时,用函数的指针调用函数sum2输出其不大于该数的奇数和;
#include <iostream.h>
int sum1(int);
int sum2(int);
void main()
{ int a;
int (*f)(int);
cout<<"Input a data:";
cin>>a;
if(a%2==0)
{ f=sum1;
cout<<(*f)(a)<<endl;}
else
{ f=sum2;
cout<<(*f)(a)<<endl;}
}
int sum1(int m)
{ int s1=0;
for(int i=2;i<=m;i=i+2)
s1=s1+i;
return s1;}
int sum2(int n)
{ int s2=0;
for(int i=1;i<=n;i=i+2)
s2=s2+i;
return s2;}
⒋编写一个程序判定一个字符在一个字符串中出现的次数,如果该字符不出现则返回0。
#include <iostream.h>
int count(char *s,char letter)
{ int count=0;
while(*s)
if(*s++==letter) count++;
return (count); }
void main()
{char str[100],c;
cout<<"input a string:";
cin>>str;
cout<< "input a letter:";
cin>>c;
cout<<"the count is:"<< count(str,c)<<endl;}
⒌自定义函数实现字符串的拷贝,,并通过主函数调用验证。
#include<iostream.h>
char *copy_string(char*,const char*);
void main()
{char s1[]="I am a student ";
char s2[20];
copy_string(s2,s1);
cout<<"s1="<<s1<<endl;
cout<<"s2="<<s2<<endl;}
char *copy_string(char *to,const char *from)
{ char *temp=to;
for(;*from!='\0';from++,to++)
*to=*from;
*to='\0';
return temp;
}