第二章 C语言复习及C++基础知识
第二章 C语言复习及C++基础知识
21C++的起源和特点 211C++的起源 212C++的特点 六C C的源程序 以下的文件C和C++都可用: h C的头包含文件 cppC++的源程序 hppC++的头包含文件 /C的注释 C++的注释
2.1.1 C++的起源 2.1.2 C++的特点 *.c C的源程序 以下的文件C和C++都可用: *.h C的头包含文件 *.cpp C++的源程序 *.hpp C++的头包含文件 /* */ C的注释 // C ++的注释 2.1 C++的起源和特点 1
22C+源程序的构成 221C++程序的一般格式 〖例21〗说明C++构造的示例程序 include∥系统头文件 int add(int a, int b); /函数原型的说明 int main( ∥主函数 i int x, y,sum ∥定义三个整型变量 cout>X ∥从键盘输入变量x的值 cin>>v: ∥从键盘输入变量y的值 sum=add(x, y); ∥调用函数add,将函数返回值赋给变量sum cou<<"二数和是:"<sum<'mn’;/输出 return O int add(int a, int b) ∥定义函数ad函数返回)值为整型 i int c; ∥定义临时变量c c=a+b ∥!和 turn c 将c的值返回通过add带回调用处
2.2 C++源程序的构成 2.2.1 C++程序的一般格式 〖例2.1 〗说明C++构造的示例程序 #include // 系统头文件 int add(int a, int b); //函数原型的说明 int main( ) //主函数 { int x,y,sum; //定义三个整型变量 cout>x; //从键盘输入变量x的值 cin>>y; //从键盘输入变量y的值 sum=add(x,y); //调用函数add,将函数返回值赋给变量sum cout<<"二数和是:"<<sum<<'\n'; //输出 return 0; } int add(int a, int b) //定义函数add,函数(返回)值为整型 { int c; //定义临时变量c c=a+b; //求和 return c; //将c的值返回,通过add带回调用处 } 2
222C++程序的结构特点 1注释 2包含文件及头文件 3语句 4标准输入与输出 printi(格式说明表达式表列); scanf(格式说明地址表列); cout<< cin 5新行 endl 6主函数 void main(i...3 7.一般的函数 函数头 int ado(inta,intb) 函数体{intc;∥变量定义 c=a+b;∥-行部分 return ca
2.2.2 C++程序的结构特点 1.注释 2.包含文件及头文件 3.语句 4.标准输入与输出 printf(格式说明 ,表达式表列); scanf(格式说明 ,地址表列); cout> 5.新行“\n” endl 6.主函数 void main( ) {…….} 7. 一般的函数 函数头 int add (int a, int b) 函数体 { int c; //变量定义 c=a+b; //执行部分 return c; } 3
23C++在非面向对象方面的一些特性 231注释行 2/C的注释 C++的注释 232新的O流 cin是标准输入流,在程序中代表标准输入设备,即键盘。 运算符“>”表示向右 cou是标准输出流,在程序中代表标准输出设备,即屏幕。 运算符“ ∥623 int main( #include i char name[20]; yoid main cout>name, cout<<<<x<<<<dec<<x<<<<oct<< cout<<name<<endl: X<<"n’ return 0: 4
2.3 C++在非面向对象方面的一些特性 2.3.1 注释行 /* */ C的注释 // C ++的注释 2.3.2 新的I/O流 cin是标准输入流,在程序中代表标准输入设备,即键盘。 运算符“>>”表示向右 cout是标准输出流,在程序中代表标准输出设备,即屏幕。 运算符“ int main( ) { char name[20]; cout>name; cout void main( ) { int x=25; cout<<hex<<x<<’'<<dec<<x<<''<<oct<< x<<'\n'; } 4
233灵活的局部变量说明 int f() i int i; 10 int 25 for(intk=5;k>=0;kx-)…… 以上的写法在C程序中都是错误的,但在C++程序中都是正确的
2.3.3 灵活的局部变量说明 int f( ) { int i; i=10; int j; j=25; for(int k=5;k>=0;k--) ….. ……. } 以上的写法在C程序中都是错误的,但在C++程序中都是正确的。 5
234结构、联合和枚举名可直接作为类型名 定义枚举类型名: enum bool False, true 定义结构枚举类型名: Struct student i int sno: char seeme; C语言中定义枚举类型变量: enum bool done; 定义结构类型变量: struct student s1,s2; C++语言中定义枚举类型变量: bool done; 定义结构类型变量: student s1,s2;
2.3.4 结构、联合和枚举名可直接作为类型名 定义枚举类型名: enum bool {FALSE, TRUE}; 定义结构枚举类型名: Struct student { int sno; char *sneme; }; C语言中定义枚举类型变量: enum bool done; 定义结构类型变量:struct student s1, s2; C++语言中定义枚举类型变量:bool done; 定义结构类型变量:student s1, s2; 6
235 const修饰符 #define limit 1oo 这里LM是一个标志,代表100 const int lIMit=100: 这里LMT是一个常量名,在内存有空间放了100,因此有地址, 可以用指针指向这空间,但不能修改它。 int j=100 这里i是一个变量名,在内存有空间放了100,因此有地址,可以 用指针指向这空间,且可以改放别的整数。 (1)可以用一个指向常量的指针变量指向常量: const char *name=" chen naine name3]=a"’;∥/错误 chen 常量 nane- “ zhang”;/确 zhan|常量 (2)指针常量 char *const name=“chen”; name3=a';∥l确 name che n name=“ zhang”;∥误常量x (3) const char *const name=“chen”; zhang
2.3.5 const修饰符 #define LIMIT 100 这里 LIMIT 是一个标志,代表100 const int LIMIT=100; 这里 LIMIT 是一个常量名,在内存有空间放了100,因此有地址, 可以用指针指向这空间,但不能修改它。 int i=100; 这里 i 是一个变量名,在内存有空间放了100,因此有地址,可以 用指针指向这空间,且可以改放别的整数。 (1) 可以用一个指向常量的指针变量指向常量: const char *name=“chen”; name[3]=‘a’; //错误 name=“zhang”;//正确 (2)指针常量 char *const name=“chen”; name[3]=‘a’; //正确 name=“zhang”; //错误 (3) const char *const name =“chen”; name chen 常量 zhang 常量 X n name chena zhang 常量 a na X 7
∥1付24 #include main i int a=l #define ti ata #define t2 t1-t1 cout maino i int a=1; const ti=a+a const T2=TI-TI cout<<t2 is <<T2<<endl return 0:
// 例2.4 #include main( ) { int a=1; #define T1 a+a #define T2 T1 -T1 cout main( ) { int a=1; const T1=a+a; const T2=T1 -T1; cout<<"T2 is "<<T2<<endl; return 0; } a+aT1T2-a+a T1 8
236内置函数 ∥6时26 #include float circle(float r) int main( 3次/ return31416*rr;} i for(int i=l; i inline float circle(float r) int main( 代码嵌入{ return3:1416*r*r; i for(int i=l; K<=3; i++) cout<<r<<i<<area=<<circle(i)<<end; return 0 9
2.3.6 内置函数 //例2.6 #include int main( ) 3次 { for(int i=1;i int main( ) 代码嵌入 { for(int i=1;i<=3;i++) cout<<"r="<<i<<" area="<<circle(i)<<endl; return 0; } float circle(float r) { return 3.1416*r*r; } inline float circle(float r) { return 3.1416*r*r; } 9