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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 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;

}

评分

参与人数 1技术分 +1 收起 理由
星河鹭起 + 1

查看全部评分

3 个回复

正序浏览
谢谢lz学习了!
回复 使用道具 举报
shenlongfuhuo 来自手机 中级黑马 2014-11-15 23:27:46
藤椅
好的,学习了
回复 使用道具 举报
谢谢楼主,学习了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马