第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; 右值表达式:只能出现在等号右边的表达式。 注意:左值表达式是右值表达式,反之不成 立。 某些变量或参数传递只能用左值表达式。如非 只读类型的引用变量或参数