java 对象变量 c++对象指针 java null引用 c++ null指针 Date deadline  是 对象变量,它可以引用Date类型的对象,但它不是一个对象,实际上它也没有引用对象. String s = new Date().toString();  //ok Date类有一个toString方法 String s = deadline.toString();  //not yet 编译错误 需要先初始化deadline,有2中方法 Date birthday = new Da…
目录 if(指针变量) 代码演示 if(指针变量) 解读代码 if(!指针变量) 解读代码 总结 替代方案.推荐写法!!!!! if(指针变量) 当把一个指针作为条件表达式时,所要判断的条件实际上就是"该指针是否为一空指针". 在if,while,for或do/while等语句中,或者在条件表达式中,都可以使用指针. 代码演示 if(指针变量) 解读代码 if (指针) { // 不是空指针 执行这个 }else { //指针 是一个空指针, 执行这个 } if(!指针变量) 解读代码…
在C++学习使用过程中,每个人都不可避免地使用指针,而且都或多或少的接触过常量指针或指针常量,但是对这两个的概念还是很容易搞糊涂的. 本文即是简单描述指针常量和常量指针的区别. 常量指针 定义: 又叫常指针,可以理解为常量的指针,也即这个是指针,但指向的是个常量,这个常量是指针的值(地址),而不是地址指向的值. 关键点: 1.常量指针指向的对象不能通过这个指针来修改,可是仍然可以通过原来的声明修改:          2.常量指针可以被赋值为变量的地址,之所以叫常量指针,是限制了通过这个指针修改…
好多程序都给结构体变量设定了一个结构体指针 例如: PAbc = ^TAbc; TAbc = record a: string[10]; b: string[5]; c: string[1]; end; var Abc: PAbc; New(Abc); ... Dispose(Abc); ... 我不清楚这是为什么 定义结构体变量的时候可以直接 var Abc: TAbc; 这样做啊,为什么要PAbc = ^TAbc;呢?仅仅是为内存的分配与释放么? 回答: 这个问题实际上与Delphi 的语法…
转载于http://blog.csdn.net/hinyunsin/article/details/6662851     前言 其实很早就想要写一篇关于指针和数组的文章,毕竟可以认为这是C语言的根本所在.相信,任意一家公司如果想要考察一个人对C语言的理解,指针和数组绝对是必考的一部分. 但是之前一方面之前一直在忙各种事情,一直没有时间静下心来写这些东西,毕竟这确实是一件非常耗费时间和精力的事情:一方面,个人对C语言的掌握和理解也还有限,怕写出来的东西会对大家造成误导.当然,今天写的这些东西也肯…
Delphi动态事件深入分析 2009-2-7 作者:不得闲核心提示:本实验证明了在类中方法的调用时候,所有的方法都隐含了一个Self参数,并且该参数作为对象方法的第一个参数传递... 首先做一个空窗体,放入一Button.在implementation下面声明两个方法如下: // 外部方法,只声明一个参数,此时按照标准的对象内部事件方法TNotifyEvent声明,此声明中,Sender则对应为产生该事件的对象指针. procedure ExtClick1(Sender: TObject);…
c语言中变量分为四类,分别是 1.auto   自动变量 2.static   静态存贮分配变量(又分为内部静态和外部静态) 3.extern  全程变量(用于外部变量说明) 4.register  寄存器变量(分配在硬件寄存器中) 四大类,所有变量必须先说明(定义),后使用. 下面分别介绍 1.自动变量(局部变量) 局部变量:在一个函数开头或段开头处说明的变量, 它有几个特征,, a.作用域为定义它的函数 b.编译器不会对自动变量给予隐含的初值,故其值不确定,因此每次使用前必须明确的置初值.…
前言 其实很早就想要写一篇关于指针和数组的文章,毕竟可以认为这是C语言的根本所在.相信,任意一家公司如果想要考察一个人对C语言的理解,指针和数组绝对是必考的一部分. 但是之前一方面之前一直在忙各种事情,一直没有时间静下心来写这些东西,毕竟这确实是一件非常耗费时间和精力的事情:一方面,个人对C语言的掌握和理解也还有限,怕写出来的东西会对大家造成误导.当然,今天写的这些东西也肯定存在各种问题,不严谨甚至错误的地方肯定有,也希望大家来共同探讨,相互改进. 我会慢慢的写完这几章,有想法的童鞋可以和我探讨…
摘要:C语言的申明存在的最大问题是:你无法以一种人们所习惯的自然方式和从左向右阅读一个声明,在引入voliatile和const关键字以后,情况更加糟糕了.由于这些关键字只能出现在声明中,是的声明形式和使用形式完全对上号的例子越来越少了.而C语言中比较绕人的指针数组和数组指针的问题,int *ap[]和int (*ap)[]谁是指针数组,谁又是数组指针?这里面声明的解析规则是什么样的?本文主要为你解答这些疑惑.       我们来看看下面的语句,和它们对应的编译结果: int (*ap)[2]=…
Dos 的设计是基于16位的CPU的,也就是CPU中的每个寄存器(Register)只有16位,只能存放0-65535(64K)的值.为了能访问大于64K的内存,人们用了分段的方法,用两个16位的数来记录逻辑上地址,第一个是段值(Segment),第二个是偏移量(Offset),写起来的格式一般是 段值:偏移量.如 0100:0020 (十六进制,地址通常用十六进制的数字) .这样就有一个32位的地址了.严格来说,因为硬件的缘故,段值个位(当然是十六进制的个位)只能为零,这种分段的方法并不能访问…