cpp(第七章)
1.c++提供了3种表示c—风格字符串方法:字符数组,字符串常量,字符串指针。其中字符数组并不一定是字符串,以空值字符'\0'来结束的字符数组时字符串。
2.函数参数为数组时,虽然减少了时间和内存的使用,但是却使原始数据破坏风险增大,而这时候我们在函数参数数组上加上限定符const,使函数不能修改数组内容。
3.函数指针,函数名即为地址,可以定义一个参数为函数指针来传递函数地址,从而可以在函数中使用另一个函数。
4.
#include <iostream>
#include <cstdio> const double *f1(const double ar[],int);
const double *f2(const double[],int);
const double *f3(const double * ,int);
typedef const double *(*p_fun)(const double*,int );
int main()
{
using std::cout;
using std::endl;
using std::cin;
double av[]= {1112.3,1542.6,2227.9};
// const double *(*pa[3])(const double *,int)= {f1,f2,f3};
// auto pb= pa;
// printf("%p\n",f1(av,3));
// printf("%p\n",pa[0]);
// printf("%p\n",*pb[0]);
//printf("%p\n",*pa[2]);
//cout<<long(f1)<<endl;
// const double *(*p1)(const double*,int )= f1;
p_fun p1= f1;
auto p2= f2;
cout<<"using pointers to functions:\n";
cout<<"address value\n";
cout<<(*p1)(av,)<<" : "<<*(*p1)(av,)<<endl;
cout<<p2(av,)<<" : "<<*p2(av,)<<endl;
const double *(*pa[])(const double *,int)= {f1,f2,f3};
auto pb= pa;
cout<<"\nusing an array f pointer to a pointers to functions:\n";
cout<<" Address value\n";
for (int i= ; i< ; i++)
cout<<pa[i](av,)<<" : "<<*pa[i](av,)<<endl;
cout<<"\nusing a pointer to a pointer to a function:\n";
cout<<" address value\n";
for (int i= ; i< ; i++)
{
cout<<(*pb[i])(av,)<<" : "<<*(*pb[i])(av,)<<endl;
}
cout<<"\nusing pointers to an array of function pointers:\n";
cout<<"Address value\n";
auto pc= &pa;
cout<<(*pc)[](av,)<<" : "<<*(*pc)[](av,)<<endl;
const double *(*(*pd)[])(const double *,int)= &pa;
const double *pdb= (*pd)[](av,);
cout<<pdb<<" : "<<*pdb<<endl;
cout<<(*(*pd)[])(av,)<<" : "<<*(*(*pd))(av,)<<endl;
return ;
}
const double *f1(const double *ar,int n)
{
return ar;
}
const double *f2(const double ar[],int n)
{
return ar+;
}
const double *f3(const double ar[],int n)
{
return ar+;
}
cpp(第七章)的更多相关文章
- C++ Primer Plus学习:第七章
C++入门第七章:函数-C++的编程模块 函数的基本知识 要使用C++函数,必须完成如下工作: 提供函数定义 提供函数原型 调用函数 库函数是已经定义和编译好的函数,可使用标准库头文件提供原型. 定义 ...
- Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第七章:在Direct3D中绘制(二)
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第七章:在Direct3D中绘制(二) 代码工程地址: https:/ ...
- 精通Web Analytics 2.0 (9) 第七章:失败更快:爆发测试与实验的能量
精通Web Analytics 2.0 : 用户中心科学与在线统计艺术 第七章:失败更快:爆发测试与实验的能量 欢迎来到实验和测试这个棒极了的世界! 如果Web拥有一个超越所有其他渠道的巨大优势,它就 ...
- 《Entity Framework 6 Recipes》中文翻译系列 (38) ------ 第七章 使用对象服务之动态创建连接字符串和从数据库读取模型
翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 第七章 使用对象服务 本章篇幅适中,对真实应用中的常见问题提供了切实可行的解决方案. ...
- 《Entity Framework 6 Recipes》中文翻译系列 (41) ------ 第七章 使用对象服务之标识关系中使用依赖实体与异步查询保存
翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 7-7 标识关系中使用依赖实体 问题 你想在标识关系中插入,更新和删除一个依赖实体 ...
- Java语言程序设计(基础篇) 第七章 一维数组
第七章 一维数组 7.2 数组的基础知识 1.一旦数组被创建,它的大小是固定的.使用一个数组引用变量,通过下标来访问数组中的元素. 2.数组是用来存储数据的集合,但是,通常我们会发现把数组看作一个存储 ...
- objective-c第七章课后练习2
题:改变第七章例子中print方法,增加bool参数,判断如果是YES则对分数进行约简 @interface Fraction : NSObject { //int num,den; } @prope ...
- 读《编写可维护的JavaScript》第七章总结
第七章 事件处理 7.1 典型用法 作者首先给了个我们一个处理事件的方法.看起来也没啥俩样,不过后来给出的优化方法很值得学习: // 不好的写法 function handleClick(even ...
- 第七章 LED将为我们闪烁:控制发光二极管
第七章 LED将为我们闪烁:控制发光二极管 本章我们将会看到一个完整的linux驱动程序,通过linux驱动程序控制LED的四个小灯,通俗的说就是通过向linux驱动程序来控制LED小灯的开关.用到 ...
随机推荐
- IEnumerable<T>和IQueryable<T>
建议29.区别LINQ查询中的IEnumerable<T>和IQueryable<T> LINQ查询方法一共提供了两类扩展方法,在System.Linq命名空间下,有两个静态类 ...
- Json对象和Json字符串之间的转换
json字符串转json对象,调用parse方法: var b='{"name":"2323","sex":"afasdf&quo ...
- Filter和Listener的应用——分IP统计网站访问次数
一:分析 统计工作需要在所有资源执行前进行,所以需要放在filter中 这个拦截器仅仅进行统计工作,不进行拦截,所以请求必须继续传递下去 用Map<String,integer>来保存数据 ...
- WPF触屏Touch事件在嵌套控件中的响应问题
前几天遇到个touch事件的坑,记录下来以增强理解. 具体是 想把一个listview嵌套到另一个listview,这时候如果list view(子listview)的内容过多超过容器高度,它是不会出 ...
- react+redux+generation-modation脚手架添加一个todolist
当我遇到问题: 要沉着冷静. 要管理好时间. 别被bug或error搞的不高兴,要高兴,又有煅炼思维的机会了. 要思考这是为什么? 要搞清楚问题的本质. 要探究问题,探究数据的流动. TodoList ...
- APP反编译第一课《如何找到核心代码》
相信很多人都应该会去接触APP反编译,本小七给大家带来入门级别套路,自己也在慢慢摸索学习,一起成长吧.第一步,反编译需要的工具有:一.java环境,其实这里你只要安装了burp就不用管这个的二.apk ...
- C专家编程阅读笔记
周末闲来无事,(哗),好久之前买的C专家编程一直没看,翻起来看了一下 尽量不使用unsigned 尽量不要在代码中使用unsigned,尤其是一些看起来是无符号类型的数字,比如年龄等,因为难免要使用u ...
- 单源最短路Dijkstra算法——matlab实现
迪杰斯特拉(Dijkstra)算法是典型最短路径算法,用于计算一个节点到其他节点的最短路径. 它的主要特点是以起始点为中心向外层层扩展(广度优先搜索思想),直到扩展到终点为止. 基本思想 通过Dijk ...
- 【WPF】获取电磁笔的压感
WPF 不仅支持触控,也支持笔的输入,比如现在比较高大上的电磁笔.便宜的板子一般不配备电磁笔,而是配电容笔,虽然也号称XXX级压感,但是效果自然不可与电磁笔相比. UIElement 类规范了UI元素 ...
- jQuery选择器的优点
jQuery选择器的优点 相信小伙伴们对选择器并不陌生,从css1到css3的选择器有很多,但是JQuery都能完美的支持,而且API操作起来也特别方便好用,在很大程度上精简了代码,节约了很多性能.那 ...