摘要:
C++ Primer 上有如下例子int ival;
while(cin>>ival,!cin.eof()){ if(cin.bad()){ throw runtime_error("IO stream corrupted"); } if(cin.fail()){ cerr<<"bad data,try again"<<endl; cin.clear(istream::failbit); } }若输入2.1,会进入死循环。究其原因,是编译器VS 2005不能正确支持cin.clear(istream::failbit) 阅读全文
摘要:
1. 函数指针两侧的圆括号不可少,2. 在引用函数名,但又没有调用该函数时,函数名将被自动解释为指向函数的指针。3. 直接引用函数名等效于在函数名上应用取地址操作符.4. 可以不需要使用解引用操作符,直接指针调用函数;5. 允许将形参定义为函数类型,但函数的返回类型则必须是指向函数的指针,而不能是函数。示例:#include <iostream>
using namespace std; typedef int (*pFUN)(int , int );
//typedef int (*pFUN)(int a, int b); int Max(int a, int b){ retur 阅读全文
摘要:
转自http://wenku.baidu.com/view/733ee308581b6bd97f19ead0.html,经过整理typedef的语法描述在现实生活中,信息的概念可能是长度,数量和面积等。在C语言中,信息被抽象为int、float和 double等基本数据类型。从基本数据类型名称上,不能够看出其所代表的物理属性,并且int、float和double为系统关键字,不可以修改。为 了解决用户自定义数据类型名称的需求,C语言中引入类型重定义语句typedef,可以为数据类型定义新的类型名称,从而丰富数据类型所包含的属性信息。typedef的语法描述 typedef 类型名称 类型标识符 阅读全文