1.
while ( cin >> x )
“Ctrl-Z”向输入流插入结束符
无条件地结束switch语句,或循环语句,转向执行语句块的后续语句
continue语句
用于循环体中,终止当前一次循环
goto 标号 ;
标号 : 语句 ;
实际参数求值的副作用:从右向左计算实参表(VC6.0)。(实际情况应消除这种副作用)
const int * p 约束形参对象,即不能修改*p的值
int * const p 约束形参指针,不能修改指针常量
只有常量引用对应的实参可以是常量或表达式
非约束的引用参数对应的实参必须是对象名
建立被调用函数的栈空间
保护调用函数运行状态和返回地址
传递参数
控制权交给被调用函数
函数返回时出栈操作:
返回值保存在临时空间
恢复调用函数运行状态
释放栈空间
根据地址返回调用函数
simple() ; // 名方式调用
(&simple)() ; // 地址方式调用
(*&simple)() ; // 间址调用
simple、&simple、*&simple都是函数的地址。
int sum ( int x , int y ) { return x + y ; }
int ( * pf ) ( int , int ) ;
pf 是指针变量,存放函数的地址
sum 是函数的直接地址
pf 的值等于sum (等于 &sum )
&pf 不等于sum (不等于 &sum )
15.
typedef:存储类的关键字,为一种数据类型定义一个新名字
定义函数类型格式:
typedef 类型 函数类型 ( 形式参数表 ;)
或: typedef double functionType ( double, double ) ;
定义指向这类函数的指针变量:
double ( * fp ) ( double, double ) ;
或: functionType * fp1 , * fp2 ;
a b c d e f g h i j k l m n o p q r s t u v w x y z
26个大写字母:
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
10个数字:
0 1 2 3 4 5 6 7 8 9
其他符号:
空格 ! ″ # % & ′( ) * + - / : ; < = > ? [ \ ] ^ _ { | } ~ .
求最大公约数:大数对小数求余(a%b),小数对余数求余(循环此步),直至余数为0,最大公约数为余数为0时的b。
2.
输入二进制数字串,转换成十进制正整数:do //略去前导符号,直至ch存放第一个合法数字
{
cin.get(ch) ;
}while( ch !='0' && ch != '1' ) ;
do //循环,逐位转换
{
Dec += ch - '0'; //把字符转换为数字,累加
cin.get(ch); //读入一位
if ( ch=='0'||ch=='1' ) //如果是0或1
{
Dec *= 2 ; //已经转换的数据左移一位
}
}while( ch=='0'||ch== '1' ); //读入非0,非1字符时结束循环
cout << "Decimal = " << Dec << '\n';
3.
对输入做判断while ( cin >> x )
“Ctrl-Z”向输入流插入结束符
4.
break语句无条件地结束switch语句,或循环语句,转向执行语句块的后续语句
continue语句
用于循环体中,终止当前一次循环
5.
goto语句:无条件转向语句,与标号语句配合使用,一般形式为:goto 标号 ;
标号 : 语句 ;
6.
若函数的实际参数表达式之间有求值关联,同一个程序在不同编译器可能产生不同的运行结果。实际参数求值的副作用:从右向左计算实参表(VC6.0)。(实际情况应消除这种副作用)
7.
指针参数:const int * p 约束形参对象,即不能修改*p的值
int * const p 约束形参指针,不能修改指针常量
8.
引用实参:const int & rk(用const约束引用参数)只有常量引用对应的实参可以是常量或表达式
非约束的引用参数对应的实参必须是对象名
9.
函数的返回值不能是局部变量的指针或引用。
10.
所有的循环结构都可以写成递归结构,反之不一定行
11.
函数调用时入栈操作:建立被调用函数的栈空间
保护调用函数运行状态和返回地址
传递参数
控制权交给被调用函数
函数返回时出栈操作:
返回值保存在临时空间
恢复调用函数运行状态
释放栈空间
根据地址返回调用函数
// 输入一串字符,然后反序输出
void reverse ()
{
char ch ; // 局部量
cin >> ch;
if ( ch != '.' )
{
reverse() ;
}
cout << ch ;
}
12.
汉诺塔void hanoi ( int n, char a, char b, char c )
{
if( n >= 1 )
{
hanoi ( n-1, a, c, b ) ;
cout << a << " --> " << c << endl ;
hanoi ( n-1, b, a, c ) ;
}
}
移动次数:2的n次方-1
13.
函数的调用simple() ; // 名方式调用
(&simple)() ; // 地址方式调用
(*&simple)() ; // 间址调用
simple、&simple、*&simple都是函数的地址。
14.
用函数指针调用函数:int sum ( int x , int y ) { return x + y ; }
int ( * pf ) ( int , int ) ;
pf 是指针变量,存放函数的地址
sum 是函数的直接地址
pf 的值等于sum (等于 &sum )
&pf 不等于sum (不等于 &sum )
15.
typedef:存储类的关键字,为一种数据类型定义一个新名字
定义函数类型格式:
typedef 类型 函数类型 ( 形式参数表 ;)
若有函数类型为:
double ( double, double ) ;或: typedef double functionType ( double, double ) ;
定义指向这类函数的指针变量:
double ( * fp ) ( double, double ) ;
或: functionType * fp1 , * fp2 ;
16.
附:C++语言的字符集是ASCII码的子集,有:
26个小写字母:a b c d e f g h i j k l m n o p q r s t u v w x y z
26个大写字母:
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
10个数字:
0 1 2 3 4 5 6 7 8 9
其他符号:
空格 ! ″ # % & ′( ) * + - / : ; < = > ? [ \ ] ^ _ { | } ~ .