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. 【stm32】时钟树解析

    有时候会突然忘了这个重要的时钟树,这里转载一个比较好的,以防忘记. STM32时钟系统 在STM32中,有五个时钟源,为HSI.HSE.LSI.LSE.PLL. ①HSI是高速内部时钟,RC振荡器,频 ...

  2. java获得路径的多种方式

    本文讲解java语言中获得运行时路径的多种方式,包括java项目.java web项目.jar.weblogic等多种场景. 一.this.getClass().getClassLoader().ge ...

  3. LinkCode 整数排序II

    http://www.lintcode.com/zh-cn/problem/sort-integers-ii/ 题目 给一组整数,按照升序排序.使用归并排序,快速排序,堆排序或者任何其他 O(n lo ...

  4. FancyBox – 经典 Lightbox 效果插件

    效果演示    插件下载

  5. AOJ/数据结构习题集

    ALDS1_3_A-Stack. Description: Write a program which reads an expression in the Reverse Polish notati ...

  6. 【数据库系列学习一】Access与Excel的区别和联系

    1.主题对一个主题Access只有一个表,而Excel可以有多个表.2.多表关系Access表各个表间存在严格的关联.Excel表各个表间的关系随意.3.数据计算Excel表中单元格中可以存储数据,也 ...

  7. 蓝桥杯-扑克牌移动-java

    /* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2016, 广州科技贸易职业学院信息工程系学生 * All rights reserved. * 文件名称: ...

  8. django restframework serializer 增加自定义字段

    在使用django restframework serializer 序列化在django中定义的model时,有时候我们需要额外在serializer中增加一些model中没有的字段.有两种方法实现 ...

  9. CSS之定位布局(position,定位布局技巧)

    css之定位 1.什么是定位:css中的position属性,position有四个值:absolute/relative/fixed/static(绝对/相对/固定/静态(默认))通过定位属性可以设 ...

  10. 【Android Widget】FragmentTabHost

    android.support.v4包里面提供了FragmentTabHost用来替代TabHost,FragmentTabHost内容页面支持Fragment,下面我们就通过示例来看他的用法 效果图 ...