当前位置:高等教育资讯网  >  中国高校课件下载中心  >  大学文库  >  浏览文档

华中科技大学:《面向对象程序设计》课程教学资源(课件讲稿)第2章 C++的变量、类型及函数

资源类别:文库,文档格式:PDF,文档页数:49,文件大小:120.7KB,团购合买
2.1 声明及定义 2.2 类型定义 2.3 引用类型 2.4 函数参数 2.5 函数内联
点击下载完整版文档(PDF)

第2章C++的变量、类型及函数 本章内容: ■2.1声明及定义 ■2.2类型定义 ■2.3引用类型 ■2.4函数参数 ■2.5函数内联

第2章 C++的变量、类型及函数 本章内容: „ 2.1 声明及定义 „ 2.2 类型定义 „ 2.3 引用类型 „ 2.4 函数参数 „ 2.5 函数内联

声明及定义 声明:对名及其内涵的不完整描述。 定义:对该名及其内涵的完整描述。 名可以声明多次,但只能定义一次。 ■ 类型声明:前向引用声明只说明类名。 class Student; ■ 变量声明:类型、变量名。定义再加初 值。 ■ 函数声明:函数原型只说明函数名,返回 类型以及函数参数。定义再加函数体

2.1 声明及定义 „ 声明:对名及其内涵的不完整描述。 „ 定义:对该名及其内涵的完整描述。 „ 名可以声明多次,但只能定义一次。 „ 类型声明:前向引用声明只说明类名。 „ class Student; „ 变量声明:类型、变量名。定义再加初 值。 „ 函数声明:函数原型只说明函数名,返回 类型以及函数参数。定义再加函数体

.1声明及定义 C语言:一般只允许以常量表达式初始化变 量,局部非静态变量可以用任意表达式初始 化。变量声明和定义必在语句前。 C++语言:所有变量都可以用任意表达式初始 化。变量声明和定义不必在语句前。兼容C,局 部非静态变量如不初试化,则其值不确定。 ■常量表达式:编译时可计算出常量值。 任意表达式:常量、变量、函数调用等组成。 只能在运行时计算出值

2.1 声明及定义 „ C语言:一般只允许以常量表达式初始化变 量,局部非静态变量可以用任意表达式初始 化。变量声明和定义必在语句前。 „ C++语言:所有变量都可以用任意表达式初始 化。变量声明和定义不必在语句前。兼容C,局 部非静态变量如不初试化,则其值不确定。 „ 常量表达式:编译时可计算出常量值。 „ 任意表达式:常量、变量、函数调用等组成。 只能在运行时计算出值

.1声明及定义 常量表达式:3, 3.14*3*3,size2, sizeof(int[2]),sizeof(3+printf("ABC")) 任意表达式: ·常量表达式 ·A,3+A printf(“ABCDEF) ·3+printf(“ABCDEF) ■注意:int[2]是类型表达式,而非值表达式。 值表达式包括常量表达式和任意表达式。值表 达式又可分为左值或右值表达式

2.1 声明及定义 „ 常量表达式: 3, 3.14*3*3, size 2, sizeof(int[2]), sizeof(3+printf( “ABC ”)) „ 任意表达式: „ 常量表达式 „ A, 3+A „ printf(“ABCDEF”) „ 3+ printf(“ABCDEF”) „ 注意: int[2]是类型表达式,而非值表达式。 值表达式包括常量表达式和任意表达式。值表 达式又可分为左值或右值表达式

,1声明及定义 左值表达式:可以出现在等号左边的表达式。 。非只读类型的变量:intx;x=2; 引用非只读类型的变量:int&y=x;y=3; 0 指向非只读单元的内容访问:intp=&x;p=1; 引用非只读类型的函数:int&f(){};f0=3; 前置+和一运算,赋值运算:((x=2)=3;(+x)=5; ■右值表达式:只能出现在等号右边的表达式。 注意:左值表达式是右值表达式,反之不成 立。 某些变量或参数传递只能用左值表达式。如非 只读类型的引用变量或参数

2.1 声明及定义 „ 左值表达式:可以出现在等号左边的表达式 。 „ 非只读类型的变量:int x; x=2; „ 引用非只读类型的变量:int &y=x; y=3; „ 指向非只读单元的内容访问:int *p=&x; *p=1; „ 引用非只读类型的函数: int &f( ){ }; f()=3; „ 前置++和 —运算,赋值运算: (x=2)=3; (++x)=5; „ 右值表达式:只能出现在等号右边的表达式。 „ 注意:左值表达式是右值表达式,反之不成 立。 „ 某些变量或参数传递只能用左值表达式。如非 只读类型的引用变量或参数

2.1声明及定义 【例2.1】C++的声明、定义及初试化。 #include extern int h=0;/C变量定义 extern int i; /1C变量声明 ■ int i; //C变量定义,缺省初始化i=0 int j=i+4; //C++变量定义,初始化ji+4 static int p=jt5;/C++变量定义,初始化为p=jt5

2.1 声明及定义 „ 【例2.1 】C++的声明、定义及初试化。 „ #include „ extern int h=0; //C变量定义 „ extern int i; //C变量声明 „ int i; //C变量定义,缺省初始化i=0 „ int j=i+4; //C++变量定义,初始化j=i+4 „ static int p=j+5;//C++变量定义,初始化为p=j+5

2.1声明及定义 void main(void){ static int n=j+5; /C+定义,初始化为n=j+5 int i=20; /C定义,初始化为i=20 int k; /C声明,k未初始化值不定 for(int j=i+2;j<9;j++) /1C+定义,初始化为j=i+2 int m=5; /C定义,初始化为m=5 k+=m; /警告,k未初始化就被引用 }; int q=23; /C+在语句中间定义变量 scanf ("%d",&j); /输入main外定义的变量j struct{intk,m;}b={jt3,5};/C+定义,任意表达式初始化 inta[4幻={scanf("%d”",&k),1};/C+定义,任意表达式初始化 }

2.1 声明及定义 void main(void){ static int n=j+5; //C++定义,初始化为n=j+5 int i=20; //C定义,初始化为i=20 int k; //C声明,k未初始化值不定 for(int j=i+2;j<9;j++) //C++定义,初始化为j=i+2 { int m=5; //C定义,初始化为m=5 k+=m; //警告,k未初始化就被引用 }; int q=23; //C++在语句中间定义变量 scanf("%d",&j); //输入main外定义的变量j struct {int k,m;}b={j+3,5};//C++定义,任意表达式初始化 int a[4]={scanf("%d",&k),1};//C++定义,任意表达式初始化 }

,1声明及定义 C允许初试化局部静态数组。C+的局部自动 数组通常在栈段分配空间,若初始化则还会在 数据段分配空间。 程序X.CPP: void main(void)/空间在栈段 int array[10]; 程序Y.CPP: ■ void main(void)/空间在数据段 static int array[10]=(1,2}; 程序Z.CPP: void main(void)/空间在栈段和数据段 int array[10]={1};

2.1 声明及定义 „ C允许初试化局部静态数组。C++的局部自动 数组通常在栈段分配空间,若初始化则还会在 数据段分配空间。 „ 程序X.CPP: „ void main(void) //空间在栈段 „ { int array[10]; } „ 程序Y.CPP: „ void main(void) //空间在数据段 „ { static int array[10]={1, 2};} „ 程序Z.CPP: „ void main(void) //空间在栈段和数据段 „ { int array[10]={1}; }

.1声明及定义 简单类型全局变量:若初始化表达式是任意表 达式,则初始值由编译生成的开工函数在运行 时计算得到。 ▣复杂类型全局变量:即全局对象,其初始化由 开工函数调用其相应的构造函数完成。 ·注意:开工函数先于main执行,收工函数后于 main执行。收工函数负责自动执行全局对象的 析构函数。因此,程序被看作一个对象,有构 造(生),活动(main),析构(死)

2.1 声明及定义 „ 简单类型全局变量:若初始化表达式是任意表 达式,则初始值由编译生成的开工函数在运行 时计算得到。 „ 复杂类型全局变量:即全局对象,其初始化由 开工函数调用其相应的构造函数完成。 „ 注意:开工函数先于main执行,收工函数后于 main执行。收工函数负责自动执行全局对象的 析构函数。因此,程序被看作一个对象,有构 造(生),活动(main),析构(死)

.1声明及定义 #include long sum(void){ int m,n,S=0; cout>n,m=1;m<=n;m++) s+=m; cout<<\nSum="<<s; return s; long x=sum();/开工函数初始化x调用sum ■ void main(void){}//空函数有运行结果

2.1 声明及定义 „ #include „ long sum(void){ „ int m, n, s=0; „ cout>n,m=1; m<=n; m++) s+=m; „ cout<<"\nSum="<<s; „ return s; „ } „ long x=sum( );//开工函数初始化x调用sum „ void main(void){ } //空函数有运行结果

点击下载完整版文档(PDF)VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
共49页,可试读17页,点击继续阅读 ↓↓
相关文档

关于我们|帮助中心|下载说明|相关软件|意见反馈|联系我们

Copyright © 2008-现在 cucdc.com 高等教育资讯网 版权所有