黑马程序员技术交流社区

标题: 2014.11.14学习小结之指针使用注意及练习 [打印本页]

作者: 736010695    时间: 2014-11-14 23:14
标题: 2014.11.14学习小结之指针使用注意及练习
本帖最后由 736010695 于 2014-11-18 16:17 编辑

#include <stdio.h>
int main()
{
    /*
    注意一:
     int *p;
     double a = 10.0;
     p = &a;
     把一个整型指针变量指向一个双精度浮点型变量,这样是不合理,虽然编译器不会报错,但禁止这样写代码
     */

    /*
    注意二:
     int *p;
     p = 200;
    这样写错误:指针只能储存地址,显然200不是地址,内存地址是以十六进制形式储存,而且一般地址都很大
     */

    /*
     注意三:
     int *p;
     printf("%d\n", *p);
     指针变量在初始化前,禁止间接访问其他储存空间
     */

    /*
    注意四:
     int *p;
     int a = 10;
     p = &a;
     可以直接写成:int *p = &a;
     但不能这样写:int *p;
                 int a = 10;
                 *p = &a;这句等于是把a的地址传给a,是一个错误写法
     */

    return 0;
}



#include <stdio.h>
int main()
{
    int a = 10;
    int *p = &a;

    //再定义一个指针变量指向指针变量p
    int **p2 = &p;
    /*
     现在修改变量a的值的方法:
     1、直接赋值:a = 5;
     2、通过指针p:*p = 5;
     3、通过指针p2找到指针p的储存空间然后再进入到a的储存空间修改a的值
     **P2 = 5;
     */
    **p2 = 5;
    printf("%d\n", a);

    return 0;

}


作者: 董帅军    时间: 2014-11-15 07:42
谢谢楼主,学习了
作者: shenlongfuhuo    时间: 2014-11-15 23:27
好的,学习了
作者: 天空总是很蓝    时间: 2014-11-16 01:41
谢谢lz学习了!




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