摘要: 一、基本知识指针和引用的声明方式:声明指针:char* pc;声明引用:char c = 'A' char& rc = c;它们的区别:①从现象上看,指针在运行时可以改变其所指向的值,而引用一旦和某个对象绑定后就不再改变。这句话可以理解为:指针可以被重新赋值以指向另一个不同的对象。但是引用则总是指向在初始化时被指定的对象,以后不能改变,但是指定的对象其内容可以改变。②从内存分配上看,程序为指针变量分配内存区域,而不为引用分配内存区域,因为引用声明时必须初始化,从而指向一个已经存在的对象。引用不能指向空值。③从编译上看,程序在编译时分别将指针和引用添加到符号表上,符号表上 阅读全文
posted @ 2012-12-12 16:18 helloyu 阅读(436) 评论(0) 推荐(0) 编辑
摘要: const定义的只读变量在程序运行过程中只有一份拷贝(因为它是全局的只读变量,存放在静态区),而#define定义的宏常量在内存中有若干个拷贝。#define宏是在预编译阶段进行替换,而const修饰的只读变量是在编译的时候确定其值。#define宏没有类型,而const修饰的只读变量具有特定的类型所以const与define之间的区别在于const定义常量排除了程序之间的不安全性 阅读全文
posted @ 2012-12-08 17:09 helloyu 阅读(362) 评论(0) 推荐(0) 编辑
摘要: 无意间看待同学的一篇关于const究竟修饰了谁的文章,里面有一些关于typedef的用法,现在贴出源代码#include<stdio.h>typedef int* IntPointer;int main(){int value=10;const int *pA=&value;pA++; //*pA=11;编译错误const IntPointer pB=&value;*pB=12;//pB++;//编译错误return 0;}*pA=11编译错误很容易理解,因为const修饰使得内存值为只读,就是指向一个常量。pB++编译错误,却很难理解,因为此时IntPointer 阅读全文
posted @ 2012-12-07 14:43 helloyu 阅读(301) 评论(0) 推荐(0) 编辑