A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 原晓桢 中级黑马   /  2015-7-26 13:04  /  549 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

指针变量初始化的方法有两种:

定义的同时进行初始化和先定义后初始化




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;

1 个回复

倒序浏览
指针学的一直不怎么样··看了你的··差不多了··
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马