1.函数声明时可以简写,如:

int max(int,int);

2.函数模板:

格式:

template <typename haha>
或template <class haha>
typename、class为关键字,class也是指函数而非类。
e.g.
   template <typename haha>
   haha max(haha a,haha b)
   {
       //xxxxx
   }

调用时像调用正常函数一样就行,会根据参数自行重载适合的函数类型。

3.有默认参数的函数:

int length(int l=10);
调用时,
可以length();//l=10;
也可以length(53);//l=53;

若有多个参数,则指定默认值的参数必须在最右端。

4.变量存储属性:

变量存储期指的是变量在内存中存在的周期,即时间起始。

内存中存储空间细分的话可分为5部分,即栈区、堆区、全局区、文字常量区、程序代码区。其中堆区、栈区为动态区,全局区为静态区。

a、栈区:由编译器自动分配释放,存放函数的参数值,局部变量的值等。
      b、堆区:一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。
      c、全局区:全局变量和静态变量的存储是放在一块的,程序结束后由系统释放。
      d、文字常量区:常量字符串就是放在这里的。 程序结束后由系统释放。
      e、程序代码区:存放函数体的二进制代码。

e.g.

//main.cpp
int a = 0;          // 全局初始化区
char *p1;           // 全局未初始化区
main()
{
  int b;                   // 栈区
  char s[] = "abc"; // 栈区
  char *p2;            // 栈区
  char *p3 = "123456";     // "123456/0" 在常量区,p3在栈区
  static int c =0;               // 全局(静态)初始化区
 
  p1 = (char *)malloc(10);
  p2 = (char *)malloc(20); // 分配得来的10和20字节的区域就在堆区
 
  strcpy(p1, "123456");     //"123456/0" 放在常量区,编译器可能会将它
                                        //与p3所指向的"123456"优化成一个地方。
}

变量类型分为4种:auto、static、register、extern。

一般cpu要用哪个数据时,就从内存中把它取出来,包括动态和静态。但是对于有些使用频繁的数据还行速度不够,所以有了register。register就是寄存器变量,将数据存在cpu的寄存器中,而不是内存中,效率更高了。

e.g. 
register int i;

现在的编译器可以自动识别使用频繁的变量,所以一般不用register去刻意声明,了解即可。

extern只用于声明,不定义。

最新文章

  1. Shader 学习笔记
  2. Jquery表单提交后获取返回Json值
  3. Make Notepad++ auto close HTML/XML tags after the slash(the Dreamweaver way)
  4. 如何通过CSS3 实现响应式Web设计
  5. TCPIP三次握手详情
  6. HTTP错误 404.17
  7. (转载)NET流操作
  8. Shell的那些事儿
  9. 关于svn获取获取文件时 Unable to connect to a repository at URL&quot;https://...&quot;执行上下文错误:参数错误
  10. XTU 1250 Super Fast Fourier Transform
  11. 【shell编程基础3】shell编程的组合应用之二:管道及其命令
  12. Delphi临界区的使用
  13. MATLAB实现聚类
  14. 解决PL/SQL Developer 连接oracle 11g 64位中的问题
  15. response 输出中文数据 文件下载
  16. MySQL5.7 多源复制监控脚本
  17. Chap3:文件系统中跳转[The Linux Command Line]
  18. python测试相关小问题
  19. asp.net MVC 中 Session统一验证的方法
  20. JavaScript的NaN-唯一 一个自己不等于自己的对象!!

热门文章

  1. 相关性系数缺点与证明 k阶矩
  2. 设计模式-(9)中介者模式(swift)
  3. Android开发之自定义对话框
  4. html5--项目实战-仿360囧图
  5. JSP 与 ACTION 之间的跳转
  6. 安装tensorflow的最简单方法(Ubuntu 16.04 && CentOS)
  7. I.MX6 DNS 查看、修改方法
  8. python3中urllib的基本使用
  9. APACHE2 服务器配置 (二) 默认端口***
  10. Ordeby then by