黑马程序员技术交流社区
标题:
关于ios1期基础测试的问题
[打印本页]
作者:
墨涵
时间:
2014-4-29 01:17
标题:
关于ios1期基础测试的问题
本帖最后由 墨涵 于 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;
}
请问*是指针的意思么,&呢
作者:
杨勇
时间:
2014-4-29 01:40
*n = 10;
指的是把10存储到指针n指向的存储空间,*后面跟一个指针变量名,意思是访问这个指针变量名所指向的存储空间。
change(&a);
指的是把a的地址作为change函数的参数进行调用,&是取址运算符,&后面跟一个变量名,意思是取出这个变量的地址。
希望能够帮到你。
作者:
sabjiang
时间:
2014-4-29 12:34
我的理解是,所有的数据在内存中都有两部分组成:
一个是数据本身的值;
一个是数据所在的存储空间的地址。
*也有两个意思,定义一个指针变量,所有的指针变量里存储的都是地址信息,指针变量的类型告诉我们这个指针保存的地址指向的数据的类型。
*也是一个运算符,表示取出地址指向的值,&是取出数据的存放地址,可以认为是跟*的逆运算
(粗浅见解,希望不会误解你)
作者:
墨子
时间:
2014-4-29 14:05
*n是定义指针,&的意思是寻址,*p=&a意思就是将a的存储地址赋给指针,这样指针就能调用a内的数值了。
作者:
xiaodixing
时间:
2014-4-29 17:42
#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.
*和&结合方向从右向左,在一起又相互抵消的作用。
希望能够帮到你!
作者:
墨涵
时间:
2014-4-30 09:34
感谢各位的耐心讲解,懂了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2