坚持可持续
2018-04-07 10:25
采纳率: 38.5%
浏览 2.2k

关于地址赋值给指针的问题,求大神

int a=10;
int b=5;

int *p;
p=&a;
int *c; 

*c=&p;  //这里会报错,大神应该看出来了吧


C是一个指针类型,每个指针有自己本身的住址 和 指向某指针地址的值,对吧。
一级指针本身的地址呢

怎样让c指针的值 为 p的地址(不是p的值)?

// c=p 是让c的指针完全和p的指针相等,地址到值

请大神解决

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

12条回答 默认 最新

  • weixin_40500068 2018-04-07 12:10
    已采纳

    #include

    int main() {
    int a = 10;
    int b = 5;

    int *p;
    p = &a;
    int **c;   // 要c存储p的地址,c的类型应当是指针的指针
    
    c = &p;  // 然后用一般的对指针赋值的方式就可以了
    std::cout << &c << std::endl;
    system("pause");
    return 0;
    

    }

    点赞 打赏 评论
  • 梦之启航 2018-04-07 11:30

    如下代码所示

    #include <iostream>
    
    int main() {
        int a = 10;
        int b = 5;
    
        int *p;
        p = &a;
        int **c;   // 要c存储p的地址,c的类型应当是指针的指针
    
        c = &p;  // 然后用一般的对指针赋值的方式就可以了
        std::cout << &c << std::endl;
        system("pause");
        return 0;
    }
    

    以上代码经VS2017测试可用,输出是p指针的地址

    点赞 打赏 评论
  • 挥霍我所拥有的 2018-04-07 12:13

    c=p就是等于地址了

    点赞 打赏 评论
  • csdn_1593923161 2018-04-07 12:18

    #include

    int main() {
    int a = 10;
    int b = 5;

    int *p;
    p = &a;
    int **c;   // 要c存储p的地址,c的类型应当是指针的指针
    
    c = &p;  // 然后用一般的对指针赋值的方式就可以了
    std::cout << &c << std::endl;
    system("pause");
    return 0;
    

    }
    楼上说的对

    点赞 打赏 评论
  • thinkin1688 2018-04-07 15:29

    要把c变量定义成二级指针 int **c;

    点赞 打赏 评论
  • 陈梦夏 2018-04-08 00:37

    少给自己找麻烦,用那么复杂的,直接C=&p,取P的地址就可以了

    点赞 打赏 评论
  • 嵌入式成员 2018-04-08 05:13

    #include
    void main()
    {
    int a = 10;
    int b = 5;

    int *p;
    p = &a;
    int **c;//看此处
    c = &p;//看此处
    system("pause");
    

    }

    点赞 打赏 评论
  • qq_41951455 2018-04-08 06:10

    同意c=&p,把他者的地址,指向一样的就好

    点赞 打赏 评论
  • ukqlxkj11 2018-04-08 06:34

    #include

    int main() {
    int a = 10;
    int b = 5;

    int *p;
    p = &a;
    int **c; // 要c存储p的地址,c的类型应当是指针的指针

    c = &p; // 然后用一般的对指针赋值的方式就可以了
    std::cout << &c << std::endl;
    system("pause");
    return 0;
    }

    点赞 打赏 评论
  • echoKangYL 2018-04-09 04:34

    图片说明
    简单用DEV跑了一下,这个应该是没什么问题的吧?

    点赞 打赏 评论
  • qq_41106163 2018-04-11 12:52

    你说的那句话的意思是*c这个数被&p赋值,但是*c是个数,而&p是个指针,那么&p就不是int型的,所以报错。你应该把那句话改成"c=&p",这样才不会错。

     int a=10;
    int b=5;
    
    int *p;
    p=&a;
    int *c; 
    
    c=&p;  //这里会报错,大神应该看出来了吧
    
    点赞 打赏 评论
  • 逍遥弟弟 2018-04-13 02:55

    c在使用之前没有赋值。
    *c = &p肯定会报错啊。因为*c相当于给c指向的地址赋值。

    点赞 打赏 评论

相关推荐 更多相似问题