数组求均值 #include <iostream> using namespace std; double average(double* array,int count); int main() { double values[]={1.0,2.0,3.0,4.0}; cout<<endl <<"The average is:" <<average(values,(sizeof values)/(sizeof values[0])) <<endl; return 0; } double average(double* array,int count) { double sum=0.0; for(int i=0;i<count;i++) { sum += *array++; } return sum/count; } 求质数 #include <iostream> #include <iomanip> using namespace std; int main() { //const int max=100; //long primes[max]={2,3,5}; int max=0; cout<<"Please input the numbers you like:"; cin>>max; int count=3;//这里记录质数的个数,这里初始化为3 long trial=5; bool isprime=true; long* primes=new long[max]; *primes=2; *(primes+1)=3; *(primes+2)=5; do { trial+=2;//下一个要测试的整数,eg,7 int i=0; do { isprime=trial%*(primes+i)>0;//7分别被2,3,5,除后,均有余数,故是质数,而9在被3除时,<=0,isprime=false }while(++i<count&&isprime); if(isprime) *(primes+count++)=trial;//如果是质数,写入数组中 }while(count<max); for(int i=0;i<max;i++) { if(i%5==0) cout<<endl; cout<<setw(10)<<*(primes+i); } cout<<endl; delete []primes; return 0; //为数组动态分配内存 //pstring=new char[20]; //delete []pstring; //为数据 //double* pnum=0; //pnum=new double; //*pnum=999.25; //delete pvalue; //pvalue=0; } 指针 #include <iostream> #include <string> using namespace std; int main() { long num=1234; long* pnum=# cout<<num<<endl <<pnum<<endl <<*pnum<<endl; //下面的指针数组还是可以修改的,而const char* const pstars[] = { "yes","no" };则就不能修改了 //const int value=20; //const int* pvalue=&value; //可以改变指向,但所指的内容不变 //int value=80; //int* const pvalue=&value; // 此时,pvalue是const的,只能指向value //数组名可以用作一个指针, //double values[21]; //double* pvalue=value;这也就是下文可以这样做的原因 const char* name="zhaoli"; const char* chars[] = { "yes", "no" }; cout<<chars[0]<<endl <<name<<endl; string str="zhaolibin"; string* pstr=&str; cout<<str<<endl <<*pstr<<endl; //可以看出对于指针,只能char*带字符型变量初始化; //其它long、string必须以已有的变量的地址初始化; //可以用数组来理解指针中间地址的运作 //pvalue++;将地址移动至下一个元素上 //esp. long numbers[]={10L,20,30,40,50}; long* pnum1=&numbers[1]; long* pnum2=&numbers[3]; int difference=pnum2-pnum1; int difference2=*pnum2-*pnum1; cout<<difference<<endl //2 <<difference2<<endl; //20 //区别sstring和string类 //以后对于字符串的操作应使用string对象,而不是使用char* 的变量 //double* pvalue=0; //pvalue-new double; //*pvalue=999.0; //delete pvalue; return 0; }