Moefish
Moefish
采纳率100%
2015-06-04 05:33 阅读 1.6k
已采纳

C语言函数间用指针调用数值的问题

函数原型是这样的
void f(int * u);
main里有这么一句
f(&x);
相当于是把变量x的地址传递给f(),没错吧,那问题来了,被赋值的是 * u还是u?
答案自然是u
我是这样想的, * u 作为一个int整体是f()的形式参数,那就将地址以int储存,那u岂不是这个地址的地址?到底哪里理解错误了?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

7条回答 默认 最新

  • 已采纳
    bdmh bdmh 2015-06-04 06:03
     int *u,u是指针,他需要指向一个地址,&x,就是x的地址,int *u = &x,这个就是把x的地址,赋值给u,让u指向x的地址
    
    点赞 1 评论 复制链接分享
  • Moefish Moefish 2015-06-04 05:38

    也就是问说int * u;这个语句到底强调的是声明了一个int 变量 * u,还是说声明了一个指针 u?
    我觉得应该是后者,对吗?

    点赞 评论 复制链接分享
  • VisualEleven Eleven 2015-06-04 05:46

    u是指向int类型的指针

    点赞 评论 复制链接分享
  • q3733353520 我用双手-成就你的梦想 2015-06-04 05:56
    int x =1;
    f(&x) ;//这个表示将变量x的地址传给u,即  int *u = &x;u为一个指向int类型的指针
    
    点赞 评论 复制链接分享
  • Knot_it Knot_it 2015-06-04 06:15

    可以这样想, u 才是f()的形式参数,u中存放的是一个地址,一个指向int变量类型的地址

    点赞 评论 复制链接分享
  • yangjie1987636 IT之路 2015-06-04 08:11

    u是指针变量,就是存取地址的变量,你的函数定义中int *u的含义是u中存取的地址是指向一个int类型的数据。

    点赞 评论 复制链接分享
  • u012377333 一枪尽骚丶魂 2015-06-05 09:42

    u是int类型指针
    x是int类型的变量
    &x表示取x的地址
    传参过程就是把x的地址给了u
    u就是用来存储int类型的指针的

    点赞 评论 复制链接分享

相关推荐