c语言&*p 是啥
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言&*p 是啥相关的知识,希望对你有一定的参考价值。
int x,*p=&x
&*p为什么是x而不是p
int x,*p=&x;//定义了一个整形变量x,和一个整形指针p,p指向x.
&*p,即&(*p),*p解引用,得到x本身,&取地址,得到x的地址,所以&*p根&x的值是一样的。
看图:
参考技术A只是一个运算符的先后问题,你这样写或许你自己会清晰,但是给其他维护人员是很不舒服的虽然没有错,劝你以后还是这么写&(*p),这样是不是很清晰,这里附上测试代码就更清晰了
那个p不要管他为什么是-40,你只要知道它是x所在的内存地址就行,你把%d换成%x就知道了
来自:求助得到的回答 参考技术A P指向X P是X的地址, *P代表间接访问P所指向的内存也就是x 然后取&应该就是X的地址,不可能是x 这是个右值本回答被提问者采纳 参考技术B 定义时:int x;int *p=&x;与int *p,x; p=&x的意思是相同的,但是在执行过程中p代表的是指针p(在这里就表示变量x的地址),而*p表示的则是取指针p的值(也就是说取变量x的值)。那么&*p也就表示指针p的地址。 参考技术C &*p 就取x的地址,就是p的值,所以&*p 等同于 p
C语言中 Trace()函数 是啥意思? Trace(1+1)最后的值是多少呢?
f()是一个函数,他有两个参数,分别赋给i和i+1,然后把函数的返回值赋给p在C语言中:一个非关键字后面加小括号是函数,加中括号是数组,加大括号是结构体,或者联合,或者枚举函数的返回值一般是唯一的(特殊情况你不用考虑)……一次调用函数只有一个返回值
比如我可以,f(int a,int b)return a+b; 这样,函数就返回两个参数的和,不是每个参数都各自执行一遍函数,而是他们一起执行一遍函数,然后得到一个结果 参考技术A 这个trace是程序调试用的,就跟printf一样, printf是将输出打印到dos窗口, TRACE是将相关的内容输出到指定的窗口,vc有个output窗口,其他的也有相应的输出窗口
执行Trace(1+1)会在输出窗口显示结果2本回答被提问者采纳
以上是关于c语言&*p 是啥的主要内容,如果未能解决你的问题,请参考以下文章