c++入门之出话指针和地址。
指针和地址是c和c++中重要的概念,在此,对指针做以下几方面的总结:
new和delete:
int*point = new int[];
point[] = ;
point[] = ;
point[] = ;
cout << "point[0] is :" << point[] << endl;
cout << "the defferent show is:" << *point << endl;
cout << "the point[2] is:" << *(point+) << endl;
delete[] point;
通常c语言中定义个数组,都是采用静态分配(不采用malloc函数的情况下),即,我们定义一个数组的大小,比如int num[1000],则不管用不用得到1000个int内存空间,当我们实际上用不到1000的内存空间的时候,则造成了内存空间的浪费。因此采用new 的方式,可以动态的根据实际需要分配内存,当没有用到的时候,则不进行内存分配。当当前任务结束后,可以通过delete来释放该段内存。需要注意的是,new 和delete是成对出现才比较好。这样不会出现内存泄露(搞清楚这个是什么意思)。
问题2,上段代码中,定义的pont 是一个数组指针,数组指针本质上是一个指向数组的指针,注意区别指针数组。他的本质仍然是一个指针。因此point[0],point[1]访问的是元素,而不是地址。
tell和&tell:
short tell[];
cout << "the address of tell is:" << tell+ << endl;
cout << "the adress of &tell is:" << &tell+ << endl;
c语言中数组名就是地址,这是一种共识,具体的讲,数组名指向第一个元素的地址。更进一步的讲,数组名所代表的类型为一个tell[]元素的地址大小;而&tell也是表示地址,且指向的是整个tell数组,如何理解这句话呢,毕竟如果打印tell和&tell,我们会发现,两者的值是相同的。但是上述代码中,我们就可以一见分晓,运行上述代码,得到结果:

代码运行结果表明:tell +1是tell[1]的地址,而&tell+1则实际上已经超出了tell数组的内存空间,指到了tell[10]的下一个空间。即从本质上讲:
tell是一个short*型的地址,而&tell 是一个short(*)[10]型的地址。注意short(*)[10]表示的含义:这只是一个指针,指针的类型为指向了一个包含10个元素的数值,而该指针+1引发的操作是使得地址便宜10个元素类型空间的大小。
更为细节性的东西可以参见下面的知识:

c++入门之出话指针和地址。的更多相关文章
- c++入门之初话指针
先上代码:再进行总结知识: # include "iostream" struct ant_year_end { int year; }; int main() { using n ...
- 承诺c指针 (1)指针是地址
(1)是地址 首先明白一个观点:指针就是地址.这是理解指针的起始一步. 直观感受下.变量的地址 int main() { int foo; int *foo_p; foo = 5; foo_p = & ...
- C语言指针、地址、赋值三者含义
先来一个观点.大家先看看对不对 按:在CSDN论坛上,有位坛友提到这个问题: ==================================== 先看一段代码: #include<stdi ...
- Java日期时间API系列39-----中文语句中的时间语义识别(time NLP 输入一句话,能识别出话里的时间)原理分析
NLP (Natural Language Processing) 是人工智能(AI)的一个子领域.自然语言是人类智慧的结晶,自然语言处理是人工智能中最为困难的问题之一(来自百度百科). 其中中文更是 ...
- c语言 指针与地址的区别
指针由两部分组成,指针的类型和指针的值(也就是变量的地址). 指针和地址的区别: 地址只是一堆十六进制的字符,对应着内存条的某段内存, 而指针本身有地址,指针的值也是一个地址,指针本身还有类型,这与单 ...
- 让树莓派说出自己的IP地址
当亲爱的树莓派没有显示器时如何控制它?对,就是ssh,但是ssh需要IP地址啊,树莓派的IP地址是多少?这个问题问的好,目前大约有这样几种解决方案:. 获取到IP地址后将地址发到邮箱:前提是树莓派能上 ...
- JavaScript中指针和地址理解
个人理解:指针只是指向内存的一个索引:而地址则是内存中确切的位置. 下面是函数中关于指针和地址一个小例子: function sum(num1,num2){ return num1+num2; } a ...
- 【c实现,vc6调试通过】给出一字符串指针,计算出字符串指针中单词数
#include <stdio.h> /* 给出一字符串指针,计算出字符串指针中单词数, 单词不包括'.',',',';','?','_','"',由0-9数字或26个字母组成 ...
- 在word文档里提取出所有的邮箱地址
怎样在word文档里提取出所有的邮箱地址 文档内容太多,邮箱也有很多,一个个复制粘贴太浪费时间,怎样把这些邮箱简单的提取出来 答案:用查找功能. 查找目标:[A-z,0-9]{1,}\@[A-z,0 ...
随机推荐
- web前端(5)—— 常用标签2
以下三个不仅是常用标签了,还非常重要,所以请务必好好看,重要性从高到低: 盒模型div div标签是最常用最重要的,它可以把web页面分割成很多的小块分别管理 测试代码: <!DOCTYPE h ...
- 洗礼灵魂,修炼python(89)-- 知识拾遗篇 —— 进程
进程 1.含义:计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位.说白了就是一个程序的执行实例. 执行一个程序就是一个进程,比如你打开浏览器看到我的博客,浏览器本身是一 ...
- SQL Server 2012 手动安装帮助文档+排错
逆天SQL Server 2012装的不要不要的,最后发现...竟然没帮助文档...汗啊!原来它跟vs一样要自己装帮助文档...好吧,官网一下载,妹的...报错...然后就让我们还原这个安装过程以及逆 ...
- python第一百一十八天---ajax--图片验证码 + Session
原生AJAX Ajax主要就是使用 [XmlHttpRequest]对象来完成请求的操作,该对象在主流浏览器中均存在(除早起的IE),Ajax首次出现IE5.5中存在(ActiveX控件). 1.Xm ...
- Apache kylin 入门
本篇文章就概念.工作机制.数据备份.优势与不足4个方面详细介绍了Apache Kylin. Apache Kylin 简介 1. Apache kylin 是一个开源的海量数据分布式预处理引擎.它通过 ...
- C# -- 正则表达式匹配字符之含义
C#正则表达式匹配字符之含义 1.正则表达式的作用:用来描述字符串的特征. 2.各个匹配字符的含义: . :表示除\n以外的单个字符 [ ] :表示在字符数组[]中罗列出来的字符任意取单个 | ...
- Kali 2.0 Web后门工具----WebaCoo、weevely、PHP Meterpreter
注:以下内容仅供学习使用,其他行为均与作者无关!转载请注明出处,谢谢! 本文将介绍 Kali 2.0 版本下的三款Web后门工具:WebaCoo.weevely.PHP Meterpreter,这类工 ...
- February 15th, 2018 Week 7th Thursday
Every orientation presupposes a disorientation. 迷失过方向,才能找到方向. Not until we are lost do we begin to u ...
- Markdown语法大全
目录 前言: 1.Markdown基础用法 1.1 目录 1.2 标题 1.3 字体样式 1.4 引用 1.5 图片 1.6 超链接 1.7 列表 1.8 表格 1.9 代码 1.10 流程图 1.1 ...
- ES5-ES6-ES7_iterator和for of
iterator(遍历器)的概念 JavaScript原有的表示“集合”的数据结构,主要是数组(Array)和对象(Object),ES6又添加了Map和Set.这样就有了四种数据集合,用户还可以组合 ...