1------指针与引用的区别:
1:非空区别。一个引用必须指向某个对象,必须初始化。但是指针可以赋空值,但给指针赋值之前必须制定指针的地址。变量不许为空时必须把变量赋给引用;
2:合法性区别。引用使用之前不需要测试合法性。指针应防止为空;
3:指针可以重新赋值指向新的对象。而引用的对象不能改变,但其内容可以改变;
4:使用指针的情况--不同时刻指向不同的对象;

2--------void swap(int *p,int*q)
{ int* temp;//不分配内存
*temp=*p;//拷贝时临时给了一个地址,函数结束后不收回,造成内存泄漏
*p=*q;
*q=*temp;
}//

void swap(int* p,int* q)
{ int* temp;
temp=p;
p=q;
q=temp;//并没有实现树值的交换,交换的仅是地址值
}
void swap(int* p,int* q)
{ int temp;
temp=*p;
*p=*q;
*q=temp;//交换的确实是地址指向的值
}

void swap(int &p,int&q)
{ int temp;
temp=&p;
&p=&q;
&q=temp;//引用传递
}
3-----------------
char **p;
*p=(char*)malloc(sizeof(char)*num);// 地址值====地址值
char *p;
p=(char*)malloc(sizeof(char)*num);
 (void*) malloc(len);//分配内存的函数,返回值void*,可改写成其他类型的指针

4-------------
char* stra()
{
char a[]="adasfsf";
return str;//局部数组,函数返回局部变量的值,调用完之后局部变量就会释放,返回的结果不稳定也不安全,随时有收回的可能
}
 
const char *strb()
{
char *a="asadsaf";//分配全局数组,保存在普通数据段;
static char a[]="adsadasf";//数据保存在静态空间(全局数据区)也可
return a;
}

5---------

地址值的减法
int a[3];
int*p,*q;
a[0]=1;a[1]=2;a[2]=2;
p=a;q=&a[2];
a[q-p]=????
q-p=(q实际地址值-p实际地址值)/sizeof(int)

6-------------
float (**def)[10];def是一个2级指针,指向一个一维数组的《《指针》》,数组元素类型都是float型,优先级从右向左,有括号优先级最大
double*(*gh)[10];gh是一个指针,指向一个一维数组,元素是double*
double(*f[10])();f是一个数组,有10个元素,元素都是函数的指针,指向的函数的类型是返回值为double
int* (*b)[10];是一个一位数组的指针
long (*fun)(int);函数指针

7--------
int a[]={1,2,3,4,5};
int *p=(int *)(&a+1);//数组名本身就是首地址,再加&就是双地址--双指针----二维数组,加1就是数组整体加一行;指向第六个元素(尽管不存在)
cout<<*(a+1)<<*(p-1);

8--------
迷途指针=delete一个指针的时,让编译器释放内存,但指针本身依然存在;
因此,在delete指针时,要把指针设为0,并且不要再使用他

9--------
malloc与free是库函数,对于非内部数据的类型对象而言,无法满足动态对象的要求,库函数不再编译器的控制范围之内,
不能执行构造和析构函数的任务,需要使用new/delete
在delete一个指针之后再去delete会造成程序-------崩溃

10--------
oo必须提供类,对象,继承
空类默认产生---默认构造函数,析构函数,拷贝构造函数,赋值函数

C++基础学习-20120514的更多相关文章

  1. salesforce 零基础学习(五十二)Trigger使用篇(二)

    第十七篇的Trigger用法为通过Handler方式实现Trigger的封装,此种好处是一个Handler对应一个sObject,使本该在Trigger中写的代码分到Handler中,代码更加清晰. ...

  2. 如何从零基础学习VR

    转载请声明转载地址:http://www.cnblogs.com/Rodolfo/,违者必究. 近期很多搞技术的朋友问我,如何步入VR的圈子?如何从零基础系统性的学习VR技术? 本人将于2017年1月 ...

  3. IOS基础学习-2: UIButton

    IOS基础学习-2: UIButton   UIButton是一个标准的UIControl控件,UIKit提供了一组控件:UISwitch开关.UIButton按钮.UISegmentedContro ...

  4. HTML5零基础学习Web前端需要知道哪些?

    HTML零基础学习Web前端网页制作,首先是要掌握一些常用标签的使用和他们的各个属性,常用的标签我总结了一下有以下这些: html:页面的根元素. head:页面的头部标签,是所有头部元素的容器. b ...

  5. python入门到精通[三]:基础学习(2)

    摘要:Python基础学习:列表.元组.字典.函数.序列化.正则.模块. 上一节学习了字符串.流程控制.文件及目录操作,这节介绍下列表.元组.字典.函数.序列化.正则.模块. 1.列表 python中 ...

  6. python入门到精通[二]:基础学习(1)

    摘要:Python基础学习: 注释.字符串操作.用户交互.流程控制.导入模块.文件操作.目录操作. 上一节讲了分别在windows下和linux下的环境配置,这节以linux为例学习基本语法.代码部分 ...

  7. CSS零基础学习笔记.

    酸菜记 之 CSS的零基础. 这篇是我自己从零基础学习CSS的笔记加理解总结归纳的,如有不对的地方,请留言指教, 学前了解: CSS中字母是不分大小写的; CSS文件可以使用在各种程序文件中(如:PH ...

  8. Yaf零基础学习总结5-Yaf类的自动加载

    Yaf零基础学习总结5-Yaf类的自动加载 框架的一个重要功能就是类的自动加载了,在第一个demo的时候我们就约定自己的项目的目录结构,框架就基于这个目录结构来自动加载需要的类文件. Yaf在自启动的 ...

  9. Yaf零基础学习总结4-Yaf的配置文件

    在上一节的hello yaf当中我们已经接触过了yaf的配置文件了, Yaf和用户共用一个配置空间, 也就是在Yaf_Application初始化时刻给出的配置文件中的配置. 作为区别, Yaf的配置 ...

随机推荐

  1. import 如何工作

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #import 如何工作 #程序第一次导入指定文件时,会执行三个步骤 #1)找到模块文件 #2)编译成位码(需 ...

  2. centos7 卸载 gitlab

    标黑的就是关键命令,先停止gitlab服务,然后rpm -e卸载,然后查看剩余gitlab进程,然后杀死主进程,然后删除所有相关目录 1 [liuyx@MiWiFi-R3L-srv ~]$ sudo ...

  3. Androidmanifest.xml在Android项目中的作用

    以下是一个项目中的AndroidManifest.xml文件: <?xml version="1.0" encoding="utf-8"?> < ...

  4. 一道SQL题

    原题:大池子博客 给定一个access_time表,它记录了用户每个月访问网站的次数,包括三个域:用户.时间.次数.注意表中可能包含用户在1月份的多条记录. 要求查询用户.月份.月累计.总共累计四项的 ...

  5. [译]流言终结者 —— SQL Server 是Sybase的产品而不是微软的

    http://www.cnblogs.com/xxxtech/archive/2011/12/30/2307859.html by Euan Garden 这些年来我听说过关于这个流言的许多版本,其中 ...

  6. 解决idea中Activiti的bpmn编辑器的中文乱码问题

    我使用的是idea2017+activiti6.0版本. 该文章主要是为了解决安装activiti插件后创建的流程模板中文乱码的问题. 1.安装Activiti流程编辑器插件. 1.1网上资料很多,这 ...

  7. JMeter学习笔记--JMeter执行顺序规则

    JMeter执行顺序规则: 配置元件 前置处理器 定时器 采样器 后置处理器(除非服务器响应为空) 断言 监听器 只有当作用域内存在采样器时,定时器.断言.前置/后置处理器才会被执行,逻辑控制器和采样 ...

  8. Android屏幕density, dip等相关概念总结

     1.几个术语 VGA.HVGA.QVGA.WVGA.WQVGA 这些术语都是指屏幕的分辨率. VGA:Video Graphics Array.即:显示画图矩阵.相当于640×480 像素: HVG ...

  9. ucosii事件控制块------消息邮箱与消息队列

    UCOSII 使用叫做事件控制块(ECB)的数据结构来描述诸如信号量.邮箱(消息邮箱)和消息队列这些事件 #define OS_EVENT_EN (((OS_Q_EN > 0u) &&a ...

  10. [hihoCoder] #1158 : 质数相关

    时间限制:2000ms 单点时限:1000ms 内存限制:256MB 描述 两个数a和 b (a<b)被称为质数相关,是指a × p = b,这里p是一个质数.一个集合S被称为质数相关,是指S中 ...