1.浮点型数值不管写成什么样 都是以指数形式保存在内存中 数符|数字部分|指数部分 例:+0.33E10 数字部分的整数部分不能大于1,小数点后面不能是0.

2.字符数据是以整数形式保存在内存中的(ASCII码,范围0-255).所以在一定范围内,字符数据与int型可以互用.

3.符号常量 #define salary 50 (编译器将预编译)好处:含义清楚 一改全改

4.字符串类型 "abc" 编译器编译时自动加"\0" 作为结束符,即"abc\0"占4个字节.

5.常变量 const int a = 255 ;在声明时就要赋值,之后不可被更改.

6.i++先使用i再自增1,++i先自增1再使用i.

7.逗号表达式取得是最后一个式子的值,a=b,c=10 值为10 ; max((10,20),a+10) 值为20

8.getchar()输入一个字符, putchar()输出一个字符。注意:是字符,不是字符串.

9.保留了C语言的scanf(),printf(),不过不常用.

10.条件表达式:表达式1?表达式2:表达式3 执行过程:判断表达式1是否成立,成立=>执行表达式2,否则执行表达式3.

11.C语言中while语句,if else语句、for语句、switch case语句等任然适用.

12.函数声明可以在主调函数中,也可以在主调函数外.

13.内嵌(内置)函数,能有效加快函数调用的效率,即在编译时,将调用的函数代码直接嵌入到要调用该函数的地方,而不是再将流程转出去,直接在函数类型前加一个关键字 inline 即可:inline int max(void);调用函数处仍为max(); 小规模函数才使用,含有复杂控制语句,如switch 循环语句等就不适合.

14.函数重载(function overloading):函数同名,一物多用,编译器可以根据实参的类型找到与之匹配的函数,重载要求参数类型或者个数、参数顺序不同,函数体可以相同也可以不相同.
使用函数重载时,同名函数的功能尽力相似。
#include<iostream>
using namespace std;

int main(){

  int max( int a, int b, int c );
  int max( int a, int b );

  int a=8, b=-12, c=27;
  cout <<"max( a,b,c )=" <<max( a,b,c ) <<endl;
  cout <<"max( a,b )=" <<max( a,b ) <<endl;
  return 0;
}

int max( int a, int b, int c ){

  if( a>b ) a = b;
  if( c>a ) a = c;
  return a;
}

int max( int a, int b ){

  if( a>b ) return a;
  else return b;
}

15.函数模板:用于函数体形同,函数参数个数相同,唯独类型不同的情况。
定义: template <typename T,.....> T 是类型 或使用(不常用)template <class T,.....>
typename 表示类型名
示例:
template <typename T>
T max( T a, T b ){

return a>b?a:b;
}
编译运行时,由实参来指定类型。

16.带默认参数的函数:float max(float r = 9.02); 即调用max()时默认实参r=9.02,要重新赋值:max(4.4);即可。其他形式:int mina(int a, int b=10); 调用mina(20) ,实际为mina(20,10);
注意:

  a.默认值的参数一定放最右端,因为实参赋值是从左到右的!
  b.函数在调用前定义,应直接在定义中给出默认值,若是函数定义在调用后,则在函数声明中需给出默认值,在定义的时候可以省略不写默认值。
  c.不能既重载又带默认参数,易出现二义性,程序不知道执行哪个函数,机器很笨的。

如果在函数声明时为 float f(int a = 10);而在定义时为float f(int a = 20){...},则以声明时的为默认值,定义的无效,其实只要在声明时指定好就行了,定义的时候不必再多此一举

17.C++中规定一个函数不能完整的再嵌套另一个函数,但是可以嵌套调用。

18.递归函数:即函数调用函数本身。执行过程分两个阶段:回推 递推 二者之间的转折点为递归结束条件,一般使用if语句。

19.变量空间属性:
  局部变量=>函数内部,或者复合语句内部有效
  全局变量=>函数外部,从定义处开始有效,少用为好

  变量时间属性->存储期:
    静态存储期 程序运行期间,系统对变量分配固定的的存储空间 静态存储区(空间)<-全局变量,占固定的存储单元,程序执行完释放

    动态存储期 程序运行期间,系统对变量动态地分配存储空间 动态存储区(空间)<-函数形参,函数中的自动变量(未加static修饰),函数调用时的现场保护和返回地址等。

    
20.变量存储类别:
  a.auto 自动变量,可以省略不写 如:int a;为动态存储;
  b.static声明的静态局部变量, 在函数执行完,该变量保持执行完的值,不会立刻销毁,在整个运行期间都占存储单元.
例:
#include<iostream>
using namespace std;

int f(int a){

  auto int b = 0;
  static c = 3;/*第一次调用后c值改变,保存改变后的值,再次调用不再执行此句,如果未指明c的值,编译时,默认赋值为0*/ b = b+1;
  c = c+1;
  return a+b+c;
}

int main(void){

  int a = 2,i;
  for(i=0;i<3;i++)
  cout <<f(a) <<"";
  cout <<endl;
  return 0;
}
执行结果:7 8 9;
  c.register 寄存器变量 <-了解即可
  d.extern 提前引用声明,即单文件时使全局变量的作用范围扩大到整个文件,而不是从定义处开始。
若是多个文件 :  file1.cpp      file2.cpp
          int a;    extern int a;/*做外部变量声明,此时两个文件都可使用同一个变量a.*/
        file1.cpp   file2.cpp
        static int a; extern int a; /*此时file1的a只能被file1使用,file2正常使用自己的a;static修饰的变量a,此时被称为静态外部变量。这两种都是编译时分配内存的,即静态存储。*/

C++学习笔记(二)--基础的更多相关文章

  1. https学习笔记二----基础密码学知识和python pycrypto库的介绍使用

    在更详细的学习HTTPS之前,我也觉得很有必要学习下HTTPS经常用到的加密编码技术的背景知识.密码学是对报文进行编解码的机制和技巧.可以用来加密数据,比如数据加密常用的AES/ECB/PKCS5Pa ...

  2. tensorflow学习笔记二:入门基础 好教程 可用

    http://www.cnblogs.com/denny402/p/5852083.html tensorflow学习笔记二:入门基础   TensorFlow用张量这种数据结构来表示所有的数据.用一 ...

  3. [Firefly引擎][学习笔记二][已完结]卡牌游戏开发模型的设计

    源地址:http://bbs.9miao.com/thread-44603-1-1.html 在此补充一下Socket的验证机制:socket登陆验证.会采用session会话超时的机制做心跳接口验证 ...

  4. java之jvm学习笔记二(类装载器的体系结构)

    java的class只在需要的时候才内转载入内存,并由java虚拟机的执行引擎来执行,而执行引擎从总的来说主要的执行方式分为四种, 第一种,一次性解释代码,也就是当字节码转载到内存后,每次需要都会重新 ...

  5. Java IO学习笔记二

    Java IO学习笔记二 流的概念 在程序中所有的数据都是以流的方式进行传输或保存的,程序需要数据的时候要使用输入流读取数据,而当程序需要将一些数据保存起来的时候,就要使用输出流完成. 程序中的输入输 ...

  6. NumPy学习笔记 二

    NumPy学习笔记 二 <NumPy学习笔记>系列将记录学习NumPy过程中的动手笔记,前期的参考书是<Python数据分析基础教程 NumPy学习指南>第二版.<数学分 ...

  7. 学习笔记(二)--->《Java 8编程官方参考教程(第9版).pdf》:第七章到九章学习笔记

    注:本文声明事项. 本博文整理者:刘军 本博文出自于: <Java8 编程官方参考教程>一书 声明:1:转载请标注出处.本文不得作为商业活动.若有违本之,则本人不负法律责任.违法者自负一切 ...

  8. C#学习笔记(基础知识回顾)之值类型与引用类型转换(装箱和拆箱)

    一:值类型和引用类型的含义参考前一篇文章 C#学习笔记(基础知识回顾)之值类型和引用类型 1.1,C#数据类型分为在栈上分配内存的值类型和在托管堆上分配内存的引用类型.如果int只不过是栈上的一个4字 ...

  9. C#学习笔记(基础知识回顾)之值传递和引用传递

    一:要了解值传递和引用传递,先要知道这两种类型含义,可以参考上一篇 C#学习笔记(基础知识回顾)之值类型和引用类型 二:给方法传递参数分为值传递和引用传递. 2.1在变量通过引用传递给方法时,被调用的 ...

  10. C#学习笔记(基础知识回顾)之值类型和引用类型

    一:C#把数据类型分为值类型和引用类型 1.1:从概念上来看,其区别是值类型直接存储值,而引用类型存储对值的引用. 1.2:这两种类型在内存的不同地方,值类型存储在堆栈中,而引用类型存储在托管对上.存 ...

随机推荐

  1. C++11常用特性总结

    非原创,转载出处 http://www.cnblogs.com/feng-sc C++11已经出来很久了,网上也早有很多优秀的C++11新特性的总结文章,在编写本博客之前,博主在工作和学习中学到的关于 ...

  2. vue.js(16)--vue的组件

    注册一个全局组件 <div id="app"> <test></test> </div> <script> // 注册全 ...

  3. Python之路-numpy模块

    这里是首先需要安装好Anaconda Anaconda的安装参考Python之路-初识python及环境搭建并测试 配置好环境之后开始使用Jupyter Notebook 1.打开cmd,输入 jup ...

  4. tomcat日志切割脚本shell

    tomcat-rotate.sh: #!/bin/bash log_path="/home/tomcat7-api/logs/"expried_time=7 function de ...

  5. [BJWC2010]严格次小生成树(LCA,最小生成树)

    [BJWC2010]严格次小生成树 题目描述 小C最近学了很多最小生成树的算法,Prim算法.Kurskal算法.消圈算法等等.正当小C洋洋得意之时,小P又来泼小C冷水了.小P说,让小C求出一个无向图 ...

  6. 解压版(.zip)的MySQL数据库下载安装

    1.首先到mysql官网下载(https://dev.mysql.com/downloads/mysql/5.6.html#downloads): 2.解压下载好的压缩包文件,并将解压后的文件夹放到合 ...

  7. ps:建立规则选区

    在前面的内容中,我们初步接触了色彩调整工具中的“色相/饱和度”工具[CTRL U],现在我们可以很容易地改变图像的色相.将如下左图的色相改为-100,形成如下中图的效果.但是这样做有一个局限,那就是只 ...

  8. flask之注册功能

    一:注册功能 1:前端准备表单 # 前端代码 <!DOCTYPE html> <html lang="en"> <head> <meta ...

  9. uiautomator2 使用注意的地方

    uiautomator2项目地址:https://github.com/openatx/uiautomator2#basic-api-usages 下面记录一些自己在使用过程中的坑,仅供参考 1.通过 ...

  10. Categorical Data

    This is an introduction to pandas categorical data type, including a short comparison with R's facto ...