引用和指针小结

原创 2006年06月03日 16:03:00

引用 &

 

注意的2点:

1使用引用时,必须同时对它进行初始话,指向一个已经存在的对象

2 一旦一个引用被初始化,就不能改为指向其他的对象。(而指针可以改变指向)。

 

声明使用如下:

int   i ;

int   &j=i ;

这样就可以i , j 就可以互相等价了。

 

 

指针 *

 

声明使用如下:

int a,b;

int *pa,*pb=&b;  (pa,pb就是地址值)

pa=&a;

 

注意指针声明时和使用时,*代表不同的意义。

指针声明之后也要指向一特定值(初始化)才能使用。指针可以改变指向。

空指针:

int *p;

p=0;//不指向任何地址  (安全的方法)

-----------------------------------

转 常量指针和指针常量

const要注意的问题
  1、下面是一个几乎所有人刚开始都会搞错的问题:
已知:typedef char *cstring;
在以下声明中,cstr的类型是什么?
extern const cstring cstr;

错误答案:const char *cstr;
正确答案:char *const cstr;

  错误在于将typedef当作宏扩展。const 修饰cstr的类型。cstr是一个指针,因此,这个定义声明了cstr是一个指向字符的const指针。
  2、指针是const还是data为const?
辨别方法很简单,如下:

代码:
char *p="hello"; //non-const pointer, non-const data;
const char *p="hello"; // non-const pointer, const data;
char * const p="hello"; // const pointer , non-const data;
const char * const p="hello"; // const pointer, const data;


  要注意的是,"hello"的类型是const char * ,按C++standard规则,char *p="hello" 是非法的(右式的const char* 不能转换为左式的char *),违反了常量性。但是这种行为在C中实在太频繁,因此C++standard对于这种初始化动作给予豁免。尽管如此,还是尽量避免这种用法。
  3、const初始化的一些问题
const 对象必须被初始化:

代码:
const int *pi=new int; // 错误,没有初始化
const int *pi=new int(100); //正确
const int *pci=new const int[100]; //编译错误,无法初始化用new表达式创建的内置类型数组元素。

相关文章推荐

指针小结.txt

  • 2008年05月13日 15:57
  • 21KB
  • 下载

C和指针第四章编程练习题小结2

scanf输入字符串 遇到空格等就会停止输入。所以最好用gets()函数: gets(src); 同样printf输出字符串的方式printf("%s\n",src); src为存储字符串的数组名 ...
  • xxz1014
  • xxz1014
  • 2014年11月05日 20:08
  • 297

数据结构小结——顺序表(指针版)

上一篇介绍的是基于柔性数组存储数据的顺序表,我个人感觉它和我这篇要介绍的基于给指针开辟空间存数据的顺序表差不多,都是使用堆内存,并且能够对数据存储空间调整大小。...

【C语言】【指针相关知识小结】

1.int *p = NULL 和 *p = NULL的区别        int *p = NULL指的是将一个指针初始化为NULL,具体过程为 int *p; p = NULL。2.&a与a的区别...

C和指针前六章小结值第五章~操作符和表达式

移位操作符: 标准说明无符号值执行的所有移位操作都是逻辑移位(逻辑右移填充零),但对于有符号的值,到底是采用逻辑意味还是算树意味取决于编译器。因此一个程序如果使用了有符号数的右移位操作,它就是不可移植...

C指针小结1

C指针小结2      我认为C语言的核心就是指针和对内存的操作,而操作内存就是由指针实现的,所以说指针真的非常非常重要,在后边的数据结构的学习中更要用指针,如果你立志要走C系统的开发这条路,那么你就...

C++小结——表-类-继承-多态-模板-异常-智能指针

如有错误,请指出,我会第一时间改正。

C和指针前六章小结之第二章

1、环境:  ANSI C的任何一种实现中,存在这两种环境:翻译环境、执行环境。这两种       环境不必位于同一个及其上。还有就是一种独立环境,就是不存在操作系统的环境(    ...

C语言学习小结(指针、数组、函数)

C语言学习小结(指针、数组、函数)       v 指针   1. 指针到底是什么?   指针其实也是一种特殊的变量,它与其他普通变量的区别是:普通变量里面是数据本身,而指针变量里面是数...
  • csdnxmj
  • csdnxmj
  • 2017年10月26日 20:24
  • 27

小结 | C++(二)| 默认成员函数、this指针

四个默认成员函数、隐藏的this指针
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:引用和指针小结
举报原因:
原因补充:

(最多只允许输入30个字)