黑马程序员技术交流社区

标题: 怎么才能学好指针啊, [打印本页]

作者: qq230546    时间: 2016-5-25 22:44
标题: 怎么才能学好指针啊,
感觉我的逻辑思维好弱,好累好累,求教得通俗!在线等!!
作者: qq230546    时间: 2016-5-26 00:09

作者: vvard3n    时间: 2016-5-26 00:43
画画图,搞不清楚的时候画图可以很快理解
作者: 18910289908    时间: 2016-5-26 04:35
其实指针就是指向某一个变量或区域的方法,你就记住它是用来指东西的就行,要么是地址,要么是属性,具体看程序想要它实现的功能。
作者: 18910289908    时间: 2016-5-26 04:38
其实指针就是指向某一个变量或区域的方法,你就记住它是用来指东西的就行,要么是地址,要么是属性,具体看程序想要它实现的功能。

1. 指针是什么?

是一个数据类型,用来存储地址

2. 有什么作用?

可以间接访问变量的值

3. 怎么用?


  1)如何声明

    int* p;

    以后碰到*, 就意味着有指针

    猜测


    2)如何赋值
    int a;

    int* p = &a;

    printf("%p\n",&p);

    int* p;

    开辟一块空间,用来存储地址,并且明确指出了存储的地址,所保存的数据的类型是int



    3)如何间接访问变量的值

    * 取内容

    & 取地址

    取指针指向的地址的内容

    int a;

    int* p = &a;

    *p = 100;


int a = 10;

int* p1 = &a;

int* p2 = p1;

*p1 = *p1 + 1;

*p2 = *p2 + 1;


函数的调用类型

1) 传值调用 -》数值

2) 传址调用 -》地址  数组 字符串 指针




int a = 10;

int* p = &a;

&p;

多级指针


1) 定义

当一个指针,指向另一个指针的时候,就存在多级指针

2)作用

可以间接访问另一个指针

3)怎么用

int a = 10;

int* p1 = &a;

int** p2 = &p1;

int*** p3 = &p2;

int**** p4 = &p3;

****p4 = 1567;



指针之间的减法

1、 指针和指针做减法,实际上失去offSet,只能相减,不能相加

2、 计算两个元素之间相差了多少个元素。

3、一个指针 ,可以通过offset 找到另一个指针






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