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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© flairamyz 中级黑马   /  2015-11-9 23:23  /  2399 人查看  /  23 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

[掌握并理解]指针的基本用法及特点
指针:
一。是什么?
严格来讲,指针有两种含义:1.是指一种数据类型;2.是一种保存地址的变量

二。有什么用?
用于存储某一个地址,从而可以通过地址直接对该地址内存空间中的数据进行操作

三。怎么用?
定义:int *p = NULL;//定义了一个能存int类型地址的指针p
赋值:
//指针区分类型:方便运算时指针的移动
四。什么时候用?
当需要存储地址,以便于操作改地址以及地址对应的内存及地址对应的内存数据
//注意:指针作为函数参数传递时传递的是地址,这个参数依旧是新定义的局部变量,只不过这个变量里面存放的时地址,我们可以直接通过地址访问变量的内容
  • #include <stdio.h>
  • void  change(int *p){
  •     *p = 100;
  •     printf("p's addr is %p,p is %p,*p is %d\n",&p,p,*p);
  •     return;
  • }
  • int main(){
  •     int a = 10;
  •     printf("before a is %d\n",a);
  •     int *p = &a;
  •     printf("*p  is %p,&a = %p,*p = %d\n",p,&a,*p);
  •     change(p);
  •     printf("after a is %d,p = %p,*p is %d\n",a,p,*p);
  •     return 0;
  • }

五。特点:(p表示一个指针名)
1.指针本身也有地址,指针定义之后,自身地址不变,但里面的存的地址可以变化
2.&p表示指针自身地址,而p表示指针存的地址,*p表示指针所存地址的内存空间
3.指针不初始化赋值不要使用,去赋值前地址是随机的,未赋值不可以用*p
4.*修饰什么,就表示是什么类型的指针,判断原则,先确定变量的类型(根据符号优先级)
file:///var/folders/t0/rmtcrw9j6wq924w545wht0dm0000gn/T/WizNote/7f2047af-87f6-4a11-9d6d-294bfe1a41af/index_files/4319399.png
int (*p4)[3] 表示一个长度为3的数组的指针;
int *p5[3]:[]优先级比*高,表示一个元素为3个指针的数组;

5.指针是什么类型的,就应该存什么类型的地址。否则*p取对应内存空间的值会出错。

23 个回复

正序浏览
总结的非常好 简洁明了
回复 使用道具 举报
指针是C语言的难点啊,这个看完蛮有帮助的
回复 使用道具 举报
chensc 金牌黑马 2015-11-18 20:37:04
22#
学习学习!
回复 使用道具 举报
lsyz0021 来自手机 中级黑马 2015-11-18 12:42:34
21#
学习了,真不错,有前途
回复 使用道具 举报
总结的不错
回复 使用道具 举报
默默点赞!!!!!!!!!!!!!!!!!!
回复 使用道具 举报
总结的不错
回复 使用道具 举报
来看看谢谢分享啦
回复 使用道具 举报
{:2_30:}{:2_30:}{:2_31:}
回复 使用道具 举报
陌忆 中级黑马 2015-11-14 22:38:17
15#
楼主也是ios基础班的么
回复 使用道具 举报
从日期上来算是的
回复 使用道具 举报
好眼熟的说.1030么?
回复 使用道具 举报
6666   学习了,一块努力
回复 使用道具 举报
嗯,头像好看
回复 使用道具 举报
指针真的很容易晕
回复 使用道具 举报
恩  哈哈哈哈啊
回复 使用道具 举报

恩恩,互相学习共同进步
回复 使用道具 举报
poxiao 中级黑马 2015-11-10 22:00:04
7#
来看看学习下
回复 使用道具 举报

哈哈哈,谢谢
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马