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(第七章)的更多相关文章

  1. C++ Primer Plus学习:第七章

    C++入门第七章:函数-C++的编程模块 函数的基本知识 要使用C++函数,必须完成如下工作: 提供函数定义 提供函数原型 调用函数 库函数是已经定义和编译好的函数,可使用标准库头文件提供原型. 定义 ...

  2. Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第七章:在Direct3D中绘制(二)

    原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第七章:在Direct3D中绘制(二) 代码工程地址: https:/ ...

  3. 精通Web Analytics 2.0 (9) 第七章:失败更快:爆发测试与实验的能量

    精通Web Analytics 2.0 : 用户中心科学与在线统计艺术 第七章:失败更快:爆发测试与实验的能量 欢迎来到实验和测试这个棒极了的世界! 如果Web拥有一个超越所有其他渠道的巨大优势,它就 ...

  4. 《Entity Framework 6 Recipes》中文翻译系列 (38) ------ 第七章 使用对象服务之动态创建连接字符串和从数据库读取模型

    翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 第七章 使用对象服务 本章篇幅适中,对真实应用中的常见问题提供了切实可行的解决方案. ...

  5. 《Entity Framework 6 Recipes》中文翻译系列 (41) ------ 第七章 使用对象服务之标识关系中使用依赖实体与异步查询保存

    翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 7-7  标识关系中使用依赖实体 问题 你想在标识关系中插入,更新和删除一个依赖实体 ...

  6. Java语言程序设计(基础篇) 第七章 一维数组

    第七章 一维数组 7.2 数组的基础知识 1.一旦数组被创建,它的大小是固定的.使用一个数组引用变量,通过下标来访问数组中的元素. 2.数组是用来存储数据的集合,但是,通常我们会发现把数组看作一个存储 ...

  7. objective-c第七章课后练习2

    题:改变第七章例子中print方法,增加bool参数,判断如果是YES则对分数进行约简 @interface Fraction : NSObject { //int num,den; } @prope ...

  8. 读《编写可维护的JavaScript》第七章总结

      第七章 事件处理 7.1 典型用法 作者首先给了个我们一个处理事件的方法.看起来也没啥俩样,不过后来给出的优化方法很值得学习: // 不好的写法 function handleClick(even ...

  9. 第七章 LED将为我们闪烁:控制发光二极管

     第七章 LED将为我们闪烁:控制发光二极管 本章我们将会看到一个完整的linux驱动程序,通过linux驱动程序控制LED的四个小灯,通俗的说就是通过向linux驱动程序来控制LED小灯的开关.用到 ...

随机推荐

  1. 篇3 安卓app自动化测试-搞定界面元素

    篇3                 安卓app自动化测试-搞定界面元素 --lamecho辣么丑 1.1概要 大家好! 我是lamecho(辣么丑),今天是<安卓app自动化测试>的第三 ...

  2. 【日常】C++ 的那些“坑” —— delete 与 析构函数 与 virtual 的 9 个小例子

    C++中有无数的坑,但毕竟-- 今天就踩到了,也算是基本问题了,记录一下,顺便以后可以考考自己.你也可以猜猜答案,大牛绕行. 0x1 先看这个: #include <stdio.h> #i ...

  3. 读 zepto 源码之工具函数

    Zepto 提供了丰富的工具函数,下面来一一解读. 源码版本 本文阅读的源码为 zepto1.2.0 $.extend $.extend 方法可以用来扩展目标对象的属性.目标对象的同名属性会被源对象的 ...

  4. Kafka配置及简单命令使用

    一. Kafka中的相关概念的介绍 Kafka是一个scala实现的分布式消息中间件,其中涉及到的相关概念如下: Kafka中传递的内容称为message(消息),message 是通过topic(话 ...

  5. Hadoop 核心架构

    Hadoop 由许多元素构成.其最底部是 Hadoop Distributed File System(HDFS),它存储 Hadoop 集群中所有存储节点上的文件.HDFS(对于本文)的上一层是Ma ...

  6. 获取安卓的SH1安全码

     用于获取手机联系人 信息   public static String sHA1(Context context) { try { PackageInfo info = context.getPac ...

  7. linux 下 查看是32位还是64位系统 命令

    文章引自:http://zhidao.baidu.com/question/583981849.html 方法1:getconf LONG_BIT 查看 如下例子所示: 32位Linux系统显示32, ...

  8. 原型(Prototype)模式

    原型模式属于对象的创建模式.通过给出一个原型对象来指明所有创建的对象的类型,然后用复制这个原型对象的办法创建出更多同类型的对象.这就是原型模式的用意.原型模式的结构 原型模式要求对象实现一个可以“克隆 ...

  9. Collection<E>、Iterable<T>和Iterator<E>接口

    Collection接口 public interface Collection<E>extends Iterable<E> Collection接口主要包含以下方法: Ite ...

  10. git编译安装与常见问题解决

    1. 先去官网下载一个安装包 ,假设目录/APP/ido   2. cd /APP/ido   3. tar -zxvf git-2.7.2.tar.gz   4. 安装依赖 yum -y insta ...