C++ Primer Plus ---函数-C++的编程模块

1. 要使用C++函数,必须完成:

   提供函数定义

   提供函数原型

   调用函数

2. 库函数是已经定义和编译好的函数,同时可以使用标准库头文件提供其原型,因此只要正确调用就好。

   C++对于返回值有一定限制:不能是数组,但可以是其他任何类型--整数,浮点数,指针,甚至可以是结构和对象(虽然C++函数不能直接返回数组,但可以将数组作为结构或对象组成部分来返回)

   通常,函数将返回值复制到指定的CPU寄存器或内存单元中来将其返回。

3. C++将数组名解释为其第一个元素的地址 cook = &cook[0];

   在C++中,当且仅当用于函数头或函数原型中,int* arr 和 int arr[] 的含义才是一样的,都意味着arr是一个int 的指针。

   通过两个不同的参数来传递数组类型和长度 void func(int arr[], int size); 而不要用方括号表示数组长度 int func(int arr[size]);

4. C++ 禁止将const的地址赋给非const指针

   例: const float a = 3.2;

          const float *b = &a; // 可行的

          float *c = &a; //Invalid

  attention: 如果数据类型 本身并不是指针,则可以将const数据和非const数据的地址赋给指向const的指针,但只能将非const数据的地址赋给非const指针。

5. 尽可能使用const

   将指针参数声明为指向常量数据的指针有两条理由:

  • 可以避免由于无意间修改数据而导致的编译错误
  • 使用const使得函数能够处理const和非const实参,否则之恶ngn接受非const数据

如果条件允许,应该将指针形参声明为指向const的指针。

6. ar2[r][c] == *(*(ar2+r) + c) ;

7. 将字符串传作为参数传递给函数,则表示字符串的方式有3种:

  • char数组
  • 用引号括起来的字符串常量(也称字符串字面值)
  • 被设置为字符串的地址的char 指针

   字符串与常规的char数组的区别:字符串有内置的结束字符(包含字符,但不以空值字符结尾的char数组这是数组,而不是字符串)。意味着不必将字符串长度作为参数传递给函数,而函数可以使用循环一次检查字符串中的每个字符,知道遇到结尾的空值为字符为止。

8. 函数无法返回一个字符串,但可以返回字符串的地址,这样效率很高。

9. C++不允许main调用自己。

    函数的地址是存储其机器语言代码的内存的开始地址。

    函数指针

  • 获取函数的地址   func()是一个函数,则func就是它的地址
  • 声明一个函数指针   double (*pf)(int)  *pf是函数,pf就是函数指针
  • 使用函数指针来调用函数    void est(double (*pf) (int))

转载于:https://my.oschina.net/leaynOntheroad/blog/172707

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值