《C++ Primer》读书笔记(7.8,7.9)
来源:互联网 发布:物联网如何传输数据 编辑:程序博客网 时间:2024/06/16 22:20
main()处理命令行选项
通常 在执行程序时 我们会传递命令行选项 例如 我们可能写如下命令行
prog -d -o ofile data0
如果用户已在命令行中指定了选项的话 那么我们可以通过main()函数的一种扩展原型特征来访问这些选项
int main( int argc, char *argv[] ) { ... }
argc 包含命令行选项的个数 argv 包含aygc 个C 风格字符串 代表了由空格分隔的命令选项 例如 对于如下命令行
prog -d -o ofile data0
argc 被设置为5 且argv 被设置为下列C 风格字符串
argv[ 0 ] = "prog"; argv[ 1 ] = "-d"; argv[ 2 ] = "-o"; argv[ 3 ] = "ofile"; argv[ 4 ] = "data0";=================外链帮助理解=============== http://bbs.csdn.net/topics/390037804
指向函数的指针
假定我们被要求提供一个如下形式的排序函数
sort( start, end, compare );
int (*pf)( const string &, const string & ); // ok: 正确这个语句声明了pf 是一个指向函数的指针,该函数有两个参数和int 型的返回值,即指向函数的指针
我们知道,不带下标操作符的数组名会被解释成指向首元素的指针。当一个函数名没有被调用操作符修饰时,会被解释成指向该类型函数的指针。例如,表达式
lexicoCompare;
被解释成类型
int (*)( const string &, const string & );的指针
将取地址操作符作用在函数名上也能产生指向该函数类型的指针。因此 lexicoCompare和&lexioCompare 类型相同 指向函数的指针可如下被初始化
int (*pfi)( const string &, const string & ) = lexicoCompare; int (*pfi2)( const string &, const string & ) = &lexicoCompare;
调用
pf( ia, iaSize );
也可以用显式的指针符号写出
(*pf)( ia, iaSize );
函数指针的数组
我们可以声明一个函数指针的数组 例如
int (*testCases[10])();使用typedef 名字可以使声明更为易读 例如
// typedefs使声明更易读 typedef int (*PFV)(); // 定义函数类型指针的 typedef PFV testCases[10];testCases 的这个声明与前面的等价
函数参数的类型不能是函数类型,函数类型的参数将被自动转换成该函数类型的指针
例如
// typedef 表示一个函数类型 typedef int functype( const string &, const string & ); void sort( string *, string *, functype );编译器把sort()当作已经声明为
void sort( string *, string *, int (*)( const string &, const string & ) );上面这两个sort()的声明是等价的
- 《C++ Primer》读书笔记(7.8,7.9)
- C-PRIMER PLUS读书笔记
- C-PRIMER PLUS读书笔记
- C++Primer读书笔记(一)
- C Primer Plus 读书笔记
- C++Primer读书笔记(二)
- 写写C++Primer读书笔记
- C primer 读书笔记1
- C++Primer读书笔记
- C++Primer读书笔记 Al
- C++primer读书笔记
- c primer读书笔记 第一章
- C++primer读书笔记5
- c primer读书笔记
- 《c++primer》 读书笔记
- c++primer读书笔记
- 《C++Primer》读书笔记(3)
- 《C++Primer》读书笔记(4)
- vb控件操作文件
- spring security 3.0的控制一个帐号只允许一次登录
- 【原创】说说JSON和JSONP,也许你会豁然开朗,含jQuery用例
- 在Linux下安装和使用MySQL
- JS打开新页面的方法
- 《C++ Primer》读书笔记(7.8,7.9)
- Nexus 7 不能连接到电脑进行Debug
- 在release模式下使用vector下崩溃的问题
- 再玩KMP算法
- 【利用Word“自动更正”功能快速输入文字】
- android alsa将usb 声卡集成到android4.0上
- 开发DBA(APPLICATION DBA)的重要性
- printf函数返回值的含义
- 如何在Windows8中设置虚拟热点共享上网