为了账号安全,请及时绑定邮箱和手机立即绑定

C语言的指针 &符号是什么意思?

C语言的指针 &符号是什么意思?

C
守着星空守着你 2019-04-09 05:04:26
#include <stdio.h>void func(int *pvalue); int main(void){int value = 10;printf("&value = %p\n",&value); func(&value); /* 这里的&是什么意思?? */printf("value = %d\n",value);return 0;}void func(int *pvalue) {printf("pvalue = %p\n",pvalue); /* 这里也是把pvalue的地址给打印出来,为什么在pvalue前没&符号了?? */*pvalue = 100; return;}
查看完整描述

3 回答

?
红糖糍粑

TA贡献1815条经验 获得超6个赞

& 是取地址符号
在函数传参过程中可以进行修改传过去的地址所指定的值,换句话说就是函数参数里的局部变量与外部的变量是共享的

查看完整回答
反对 回复 2019-04-10
?
一只名叫tom的猫

TA贡献1906条经验 获得超3个赞


给你一个程序,你可以看一下,希望你可以明白
#include<stdio.h>

int main(){
int value = 5;
int *pvalue = &value;
int **ppvalue = &pvalue;
printf("&value = %d\n",&value);
printf("pvalue = %d\n",pvalue);
printf("ppvalue = %d\n",ppvalue);
printf("*ppvalue = %d\n",*ppvalue);
printf("**ppvalue = %d\n",**ppvalue);
return 0;
}

结果:
&value = 1337974940
pvalue = 1337974940
ppvalue = 1337974928
*ppvalue = 1337974940
**ppvalue = 5

查看完整回答
反对 回复 2019-04-10
?
慕神8447489

TA贡献1780条经验 获得超1个赞

C语言中$不是操作符也不能被用来定义标识符(Java中倒是可以)。C语言历史上是为设计Unix操作系统而发明的。所以个人估计不用$是因为防止和Unix-like系统中命令提示符$混淆($在Shell中有其它用途)。
关于C语言的相关用法,关联性比较大的是makefile中的宏定义,$(...)表示对一个宏的引用,括号中为宏名(如果宏名是单字符则括号可省略)。如果使用IDE,编译系统可能会把环境变量指定为预设的宏供用户使用——这样的宏用来控制编译源文件和生成目标文件的路径很方便。
makefile配合make工具使用,用来在编译过程中控制文件的依赖性。虽然本身不是C语言的必要组成部分,但是事实上的C工程编译过程中基本都要用到它(VC里面用的是代用品Microsoft NMake)。makefile的语法很复杂,

查看完整回答
反对 回复 2019-04-10
  • 3 回答
  • 0 关注
  • 1093 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信