黑马程序员技术交流社区

标题: 指针初始化和引用 [打印本页]

作者: 手残程序员    时间: 2015-7-25 23:28
标题: 指针初始化和引用
指针变量初始化的方法有两种:
定义的同时进行初始化和先定义后初始化

1)定义的同时进行初始化

int a = 5; int *p = &a;

2)先定义后初始化

int a; int *p; p=&a;

3)把指针初始化为NULL

int *p=NULL;

int *q=0; 不合法的初始化:

1)指针变量不能被赋值一个整数值
(因为我们不知道这个整形常量是内存哪块地址)
                 
2)被赋值的指针变量前不能再加“*”说明符,如写为*p=&a 也是错误的

注意点
1、多个指针变量可以指向同一个地址 int a = 5;
2、指针的指向是可以改变的
3、指针没有初始化里面是一个垃圾值,这时候我们这是一个野指针, 如果操作一个野指针
1)可能会导致程序崩溃
2)访问你不该访问数据 所以指针必须初始化才可以访问其所指向存储区域


两个有关的运算符:
& :取地址运算符;
* :指针运算符(或称“间接访问” 运算符)。

&*p   --->  p

&变量名;
*指针变量名 //获取指针变量指向的存储空间的内容

*指针变量名 //获取指针变量指向的存储空间的内容 如&a表示变量a的地址,&b表示变量b的地址。变量本身必须预先说明。


关于*的使用注意:
1)在定义变量的时候 * 是一个类型说明符,说明定义的这个变量是一个指针变量

int a = 5;

int *p = &a;

int *p1 = p;

2)在不是定义变量的时候 *是一个操作符,访问指针所指向存储空间

int x = *p;


作者: 你好再见    时间: 2015-7-25 23:33
你丑你发帖
作者: 花漾    时间: 2015-7-25 23:44
不初始化会出垃圾值
作者: 隔壁老王    时间: 2015-7-26 00:17
学着学着我睡着了
作者: skywan    时间: 2015-7-26 11:04
*有时候不知道到底指什么




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2