#include void main() { int k=2,m=4,n=6; int *pk=&k,*pm=&m,*p
来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/11/11 05:03:22
#include void main() { int k=2,m=4,n=6; int *pk=&k,*pm=&m,*p; *(p=&n)=*pk*(*pm);
*(p=&n)=*pk*(*pm);
我以为*(p=&n)与*n等价,不就是6=2*4;
但实际是n=8
我认为指针中的星号意为所指地址的内容.(除多维数组指针.)
*(p=&n)=*pk*(*pm);
我以为*(p=&n)与*n等价,不就是6=2*4;
但实际是n=8
我认为指针中的星号意为所指地址的内容.(除多维数组指针.)
*(p=&n)=*pk*(*pm);
拆解表达式如下
p=&n 即指针p 指向n的地址
*(p=&n) 即 *p 即n的值
n = 2*4 = 8
再问: 书上的星号是去指针指向对象的内容。*p是n的值但n有赋值。我不好理解n=8这步。麻烦解释下。 谢谢
再答: 举例: n在内存中的地址是 0x1234, 而内存地址0x1234存放的数据是 6(即n的值) p在内存中的地址是 0x5678, 而内存地址0x5678存放的数据是 0x1234(即n的地址) 我们所谓的 n 就是 内存地址0x1234中存放的数据 6 同理 p就是 内存地址0x5678中存放的数据 0x1234 而 *p的意思是把 内存地址0x5678中存放的数据 做为地址,这个地址存放的数据。 即 *p 和 n 表示了同一个 内存地址, = 就是给这个地址赋值
拆解表达式如下
p=&n 即指针p 指向n的地址
*(p=&n) 即 *p 即n的值
n = 2*4 = 8
再问: 书上的星号是去指针指向对象的内容。*p是n的值但n有赋值。我不好理解n=8这步。麻烦解释下。 谢谢
再答: 举例: n在内存中的地址是 0x1234, 而内存地址0x1234存放的数据是 6(即n的值) p在内存中的地址是 0x5678, 而内存地址0x5678存放的数据是 0x1234(即n的地址) 我们所谓的 n 就是 内存地址0x1234中存放的数据 6 同理 p就是 内存地址0x5678中存放的数据 0x1234 而 *p的意思是把 内存地址0x5678中存放的数据 做为地址,这个地址存放的数据。 即 *p 和 n 表示了同一个 内存地址, = 就是给这个地址赋值
#include #define M 20; void main() { int i,j,k,p,t,n=0; int
#include void f(int *p,int*q); main() {int m=1,n=2,*r=&m; f(
#include "stdio.h" main() { int m,n; float k; for (m=6;m>2;m
#include void main( ) { int k=-3; if (k
#define SQR(X) X*X #include void main(){ int a=16,k=2,b=4,m=
#include void main() { int k=5,n=0; while(k>0) {switch(k) {d
#include void main() { int k=-1; printf("%d,%u\n",k,k); }
#include main(void) { int i=0,j=0,k=0,m; for(m=0;m
#include #define S(x) x*x void main() { int a,k=3,m=1; a=S(k
#include void main(void) { int a=
int main(void) { int k=0; while(k++
#include main() {int a,b,k=4,m=6,*p=&k,*q=&m; a=p==&m; b=(--