C++ (P103—P154)
1 任一指针变量本身的数据值得类型都是unsigned long int
2 指针值为0的叫做空指针,为了安全起见,声明指针时最好初始化,哪怕是初始化为空指针
3 一般不能使用不同类型变量的地址来给指针赋值,如果确实需要可以进行强制类型转换
int i;
double *p = (dobule *)&i;
4 利用指针访问变量的过程称为“间接寻址”
5 指针加n的实际操作是使指针中的地址值加上 sizeof(数据类型)*n
6 如果两个指针所指向的变量类型相同,则它们之间做减法代表的绝对值代表这两个指针之间相隔的数据个数
7 在c++中this是一个指针,区分java哟,记住这句话:实际上,在调用一个对象的成员函数时,系统会首先将这个对象的地址赋给被调用成员函数中的this指针,然后成员函数访问数据成员时,就隐含的使用this指针来确保访问到的数据成员属于这个对象。
静态成员函数就没有this指针,这就是为什么静态函数不能访问非静态的函数,静态成员函数不能声明为常成员函数
8 指向数据成员的指针:数据类型 类名::*数据成员指针名;数据成员指针名=&类名::数据成员名;
使用的时候需要对象调用:对象名.*数据成员指针名;
指向类成员函数的指针:数据类型 (类名::*指针名) (参数列表);指针名=类名::成员函数名;
同样使用的时候需要对象调用:(对象名。*指针名)()
普通函数指针:int (*p)(int ,int );p=函数名;p(1,2);p代表的就是函数名那个函数
返回指针的函数:int *p(int ,int ); int *i=p(1,2);
指向静态成员的指针:使用普通指针即可,成员用类名限制。
int (*p)(int ,int );p=类名::函数名;p(1,2);p代表的就是函数名那个函数
int *p; p=类名::静态数据成员;
9 void指针,一般来说不同类型指针间的赋值时错误的但是void指针是个特例,void类型可以指向任一类型数据,当需要将void类型指针赋给其他类型时需要强转。
用于编写通用型函数,但是void类型指针在运算和输出时都需要强转为具体的数据类型
10 const放在指针类型前,表示声明了一个指向常量的指针。放在*和指针名之间就是声明一个指针常量,这时指针本身的值是不能改变的。
声明对象为常对象的时候,实际上间接声明了这个对象的this指针时常指针。
11 应用程序数据所占的内存有三种静态存储空间、栈、堆。全局变量和静态变量在静态存储空间中,局部变量在栈中,堆成为自由空间,动态内存申请都是像堆中申请空间。
12 dobule atof(const char* buf) 将字符串转换为浮点型数据
double atoi(const char* buf) 将字符串转换为整数型
int sprintf(char *buffer ,format,任意数据)将任意数据按照格式转换为字符串
strcat strcpy strcmp strlen strlwr strupr
13 sizeof三个特点:
对数组,sizeof(数组名)返回值为数组所占空间
对指针,sizeof(指针名)返回值为4
对数组传参给函数,参数为数组形式时,sizeof(数组名)返回值为4
14 深度拷贝构造函数与引用:
传值调用时,程序需要为每个传递的值生成一个副本,当程序从函数中返回值时,同样也需要一个副本。
但是如果采用传址或者引用调用时,函数中传递的是对象的地址,这时候不需要对象临时建立一个副本。
深度拷贝构造函数是针对类中存在指针时,调用深度拷贝构造函数时需要将指针重新分配空间再赋值,否则拷贝的和原来的都指向一个内存,如果在拷贝的对象里操作了指针,则原来的也会发生变化。拷贝构造函数是当传递对象作为参数时,会自动调用拷贝构函数对对象进行拷贝保存。
引用使用过程中注意指针的存在,指针的内存是可以delete的,引用的却没有这种机制,如果引用的空间是一个指针的空间,指针销毁了,但是引用还在用就有可能系统崩溃。
C++ (P103—P154)的更多相关文章
- 【DDD】领域驱动设计实践 —— 业务建模实例(‘发布帖子’)
本文是基于上一篇‘业务建模小招数’的实践,后面的多篇博文类似.本文主要讲解‘发表帖子’场景的业务建模,包括:业务建模.业务模型.示例代码:示例代码会使用java编写,文末附有github地址.相比于& ...
- git-简单流程(学习笔记)
这是阅读廖雪峰的官方网站的笔记,用于自己以后回看 1.进入项目文件夹 初始化一个Git仓库,使用git init命令. 添加文件到Git仓库,分两步: 第一步,使用命令git add <file ...
- 读书笔记:JavaScript DOM 编程艺术(第二版)
读完还是能学到很多的基础知识,这里记录下,方便回顾与及时查阅. 内容也有自己的一些补充. JavaScript DOM 编程艺术(第二版) 1.JavaScript简史 JavaScript由Nets ...
- Recurrent Neural Network系列1--RNN(循环神经网络)概述
作者:zhbzz2007 出处:http://www.cnblogs.com/zhbzz2007 欢迎转载,也请保留这段声明.谢谢! 本文翻译自 RECURRENT NEURAL NETWORKS T ...
- 谈谈一些有趣的CSS题目(十二)-- 你该知道的字体 font-family
开本系列,谈谈一些有趣的 CSS 题目,题目类型天马行空,想到什么说什么,不仅为了拓宽一下解决问题的思路,更涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题 ...
- RxJS + Redux + React = Amazing!(译一)
今天,我将Youtube上的<RxJS + Redux + React = Amazing!>翻译(+机译)了下来,以供国内的同学学习,英文听力好的同学可以直接看原版视频: https:/ ...
- ASP.NET Core 中文文档 第四章 MVC(3.8)视图中的依赖注入
原文:Dependency injection into views 作者:Steve Smith 翻译:姚阿勇(Dr.Yao) 校对:孟帅洋(书缘) ASP.NET Core 支持在视图中使用 依赖 ...
- 从0开始搭建SQL Server AlwaysOn 第三篇(配置AlwaysOn)
从0开始搭建SQL Server AlwaysOn 第三篇(配置AlwaysOn) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://w ...
- 恢复SQL Server被误删除的数据(再扩展)
恢复SQL Server被误删除的数据(再扩展) 大家对本人之前的文章<恢复SQL Server被误删除的数据> 反应非常热烈,但是文章里的存储过程不能实现对备份出来的日志备份里所删数据的 ...
随机推荐
- ARM Linux系统的时钟机制
1. Linux下有两类时钟: 1.1 实时钟RTC 它由板上电池驱动的“Real Time Clock”也叫做RTC或者叫CMOS时钟,硬件时钟.当操作系统关机的时候,用这个来记录时间,但是对于运行 ...
- 转载:C++ 虚函数表解析
目录(?)[+] 转载:http://blog.csdn.net/haoel/article/details/1948051# 前言 C++中 的虚函数的作用主要是实现了多态的机制.关于多态,简而 ...
- memcached 学习笔记
memcached是高性能的分布式内存缓存服务器.一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态应用的速度.提高可扩展性. Memcached基于一个存储键/值对的hashm ...
- opencv linux
This link which you also mentioned describes the necessary steps to compile OpenCV on your machine. ...
- 反编译c#的相关问题
最近硬盘坏掉了,有一个项目没有备份,只好用Exe 文件反编译出来用,查了一下相关的文章用到的工具如下: ILSpy_Master_2.1.0.1603_RTW_Binaries 直接生成时,有些奇怪, ...
- OWC控件的使用
环境:SQL Server 2005 Analysis Services + OWC 1.1 +Win 7 准备: 1.在SQL Server 2005 Analysis Services建好ola ...
- Discuz资料整理
1.截取字符串:messagecutstr(strip_tags($post['message']), 160);
- HDFS体系结构:(Distributed File System)
分布式系统的大概图 服务器越来越多,客户端对服务器的管理就会越来越复杂,客户端如果是我们用户,就要去记住大量的ip. 对用户而言访问透明的就是分布式文件系统. 分布式文件系统最大的特点:数据存储在多台 ...
- HDU-4336 Card Collector 概率DP
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4336 题意:买食品收集n个卡片,每个卡片的概率分别是pi,且Σp[i]<=1,求收集n个卡片需要 ...
- Raspberry Pi无线路由器篇
RaspberryPi可以折腾的方法很多,我将会吧自己的折腾经验与大家分享. 作为无线路由器,需要提供dhcp的功能和无线ap的能力,我们分别通过isc-dhcp-server和hostapd这两 ...