//--《C++捷径教程》读书笔记--Chapter 9--更多的数据类型与运算符(第一部分)
//--Chapter 9--更多的数据类型与运算符
//--11/16/2005 Wed.
//--Computer Lab
//--Liwei
//--程序#1 const的使用
#include <iostream>
using namespace std;
void code(const char *str);
void code1(char *const str);
int main()
{
code("this is a test");
cout<<endl;
code1("dddddddddddddddd");
cout<<endl<<"======================="<<endl;
//getchar();
return 0;
}
void code(const char *str)//所指变量不能变,但地址可以变。
{
while(*str){
//str="lixiongwei!";
//cout<<str;
//*str=*str+1;
//cout<<(char)*str;
cout<<(char)(*str+1);
str++;
}
}
void code1(char *const str)
{
*(str+2)='A';
}
//--程序#2 const的使用
#include <iostream>
using namespace std;
void f(const int &i);
int main()
{
int k=10;
f(k);
cout<<endl<<"======================="<<endl;
//getchar();
return 0;
}
void f(const int &i)
{
i=100;
cout<<i;
}
//--程序#3 const的使用
#include <iostream>
using namespace std;
const int size=10;
int main()
{
int a1[size],a2[size],a3[size];
cout<<endl<<"======================="<<endl;
//getchar();
return 0;
}
//--程序#4 extern的使用
#include <iostream>
using namespace std;
int main()
{
extern int first,last;
cout<<first<<" "<<last<<endl;
cout<<endl<<"======================="<<endl;
//getchar();
return 0;
}
int first=10,last=20;
//--程序#5 计算用户输入数值的累计平均值
#include <iostream>
using namespace std;
int r_avg(int i);
int main()
{
int num;
do{
cout<<"Enter numbers (-1 to quit): ";
cin>>num;
if(num!=-1)
cout<<"Running average is: "<<r_avg(num);
cout<<endl;
}while(num>-1);
cout<<endl<<"======================="<<endl;
//getchar();
return 0;
}
int r_avg(int i)
{
static int sum=0,count=0;//只执行一次初始化
sum+=i;
count++;
return sum/count;
}
//--程序#6 计算用户输入数值的累计平均值
#include <iostream>
using namespace std;
int r_avg(int i);
void reset();
int main()
{
int num;
do{
cout<<"Enter numbers (-1 to quit): ";
cin>>num;
if(num==-2){
reset();
continue;
}
if(num!=-1)
cout<<"Running average is: "<<r_avg(num);
cout<<endl;
}while(num!=-1);
cout<<endl<<"======================="<<endl;
//getchar();
return 0;
}
static int sum=0,count=0;//只执行一次初始化
int r_avg(int i)
{
sum+=i;
count++;
return sum/count;
}
void reset()
{
sum=0;
count=0;
}
//--程序#6(+) 计算m的e次幂
#include <iostream>
using namespace std;
int signed_pwr(register int m, register int e);
int main()
{
cout<<signed_pwr(10,3)<<endl;
cout<<endl<<"======================="<<endl;
//getchar();
return 0;
}
int signed_pwr(register int m, register int e)
{
register int temp;
int sign;
if(m<0)
sign=-1;
else
sign=1;
temp=1;
for(;e;e--)
temp*=m;
return temp*sign;
}
//--程序#7 register的使用
#include <iostream>
#include <ctime>
using namespace std;
unsigned int i;
unsigned int delay;
int main()
{
register unsigned int j;
long start,end;
start=clock();
for(delay=0; delay<50; delay++)
for(i=0; i<64000000; i++);
end=clock();
cout<<"non-register: "<<end-start<<endl;
start=clock();
for(delay=0; delay<50; delay++)
for(j=0; j<64000000; j++);
end=clock();
cout<<"register: "<<end-start<<endl;
cout<<endl<<"======================="<<endl;
//getchar();
return 0;
}
//--程序#8 enum的使用
#include <iostream>
using namespace std;
enum apple{lixiongwei,tanfeng,changan,guangxi,guilin,yulin};
//char name[][20];
char *name[]={
"lixiongwei",
"tanfeng",
"changan",
"guangxi",
"guilin",
"yulin",
""
};
int main()
{
int i;
apple fruit;
fruit=lixiongwei;
cout<<name[fruit]<<endl;
fruit=tanfeng;
cout<<name[fruit]<<endl;
fruit=guilin;
cout<<name[fruit]<<endl;
for(i=0; name[i][0]; i++)
cout<<name[i][0]<<" ";
cout<<endl<<"======================="<<endl;
//getchar();
return 0;
}