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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

墨涵

初级黑马

  • 黑马币:28

  • 帖子:16

  • 精华:0

© 墨涵 初级黑马   /  2014-4-29 01:17  /  1319 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 墨涵 于 2014-4-30 09:47 编辑

#include
void change(int *n);
int main()
{
    int a = 90;
   
    change(&a);
   
    printf("%d\n", a);
   
    return 0;
}
void change(int *n)
{
    *n = 10;
}
请问*是指针的意思么,&呢

评分

参与人数 1技术分 +1 收起 理由
脸皮猴 + 1

查看全部评分

5 个回复

倒序浏览
*n = 10;
指的是把10存储到指针n指向的存储空间,*后面跟一个指针变量名,意思是访问这个指针变量名所指向的存储空间。
change(&a);
指的是把a的地址作为change函数的参数进行调用,&是取址运算符,&后面跟一个变量名,意思是取出这个变量的地址。
希望能够帮到你。

评分

参与人数 1技术分 +1 收起 理由
脸皮猴 + 1

查看全部评分

回复 使用道具 举报
我的理解是,所有的数据在内存中都有两部分组成:
一个是数据本身的值;
一个是数据所在的存储空间的地址。
*也有两个意思,定义一个指针变量,所有的指针变量里存储的都是地址信息,指针变量的类型告诉我们这个指针保存的地址指向的数据的类型。
*也是一个运算符,表示取出地址指向的值,&是取出数据的存放地址,可以认为是跟*的逆运算
(粗浅见解,希望不会误解你)

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

回复 使用道具 举报
*n是定义指针,&的意思是寻址,*p=&a意思就是将a的存储地址赋给指针,这样指针就能调用a内的数值了。
回复 使用道具 举报

#include
void change(int *n);
int main()
{
    int a = 90;
   
    change(&a);
   
    printf("%d\n", a);
   
    return 0;
}
void change(int *n)
{
    *n = 10;
}
    *有两个意思,当他在定义的时候int *n表示n是一个指针变量,当他在函数中的时候:比如*n 表示访问n所指向的存储空间。&表示取地址比如:题中的&a表示将a的地址传递给*n.
   *和&结合方向从右向左,在一起又相互抵消的作用。
希望能够帮到你!
回复 使用道具 举报
感谢各位的耐心讲解,懂了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马