为什么 void main() { int a=100,*p=a;printf("%d\n",p}正确?

而 void main() { int =100,*p=a; printf("%d\n",*p);

错误的,正确的是:void main() { int a=100,*p=&a;printf("%d\n",*p);}说明:*p=a,是错误的应该是*p=&a,由*p是指针,应该存放地址。同时,后面应该是取值*p。
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-05-23
printf("%d\n",*p);
这个输出的是a的地址
第2个回答  2011-05-23
p是地址啊,等于说你把地址强制转换成%d十进制的了,想打印地址得用%p

为什么 void main() { int a=100,*p=a;printf("%d\\n",p}正确?
错误的,正确的是:void main() { int a=100,*p=&a;printf("%d\\n",*p);}说明:*p=a,是错误的应该是*p=&a,由*p是指针,应该存放地址。同时,后面应该是取值*p。

为什么void main() {int a=100,*p=a;printf(“%d\\n",p);}正确?
这要看你程序实现的目的了。如果按正常的编程方法,定义指针p p指向a的地址,然后用指针输出a的内容 100 这两个都写的有问题。正确的:void main(){ int a=100,*p=&a; \/\/关键在这里 p=&a 要用a 的地址给p赋值 printf("%d\\n",*p);} ...

为什么 void main() { int a=100,*p=a;printf("%d\\n",p);}正确?
int =100?是提问时打错了?

main() { int a=100; if (a>100) printf(“%d\\n”,a>100); else printf...
a<=100是一个逻辑表达式,由于a=100,a<=100成立,值为1 所以输出的是1

...main() {int a=100; if(a>100)printf("%d\\n",a>100); else printf...
1,因为a等于100,所以走else分支:printf("%d\\n",a<=100);2,a<=100 是个关系表达式,它的返回值是真或者假,在c语言中1是真,0是假 3, 因为a<=100是真, 打印出1

...main() {int a=100; if(a>100)printf("%d\\n",a>100); else printf...
printf("%d\\n",a>100);这里a>100是个表达式,a=100,那么a>100是假,所以是0,a<=100是真,所以是1,你想达到输出可以这样写 if(a>100)printf("a>100\\n"); else printf("a<=100\\n"); 直接在格式语句中写就行。

...main() { int a=10; int*p; *p=a; printf("%d",*p); } 这程序为什 ...
p是指针,指针必须指定一个内存,才能使用。你直接取的是*p,等于没有指定内存,直接的把a的值赋予一个空的指针上了。还有,你的main需要一个声明。正确的应该是这样的。include"stdio.h"int main(){ int a=10;int *p;p=&a;\/\/取a的内存位置,让指针p指向a。printf("%d",*p);return 0;\/\/...

int a[]={1,2,3,4,5}; int *p=a; printf("%d\\n",*p); 为什么结果是1呢...
输出顺序按照从右往左运行,最后的是*P,因为*p=a,所以*P输出数组的第一个元素 最后的*p=1;--(*p)先自减=0,*p=0;p--先复制=0;p=0;(*P)++先复制=0;(++p)中++p自加1,变为坐标为1的元素,a[1]=*(++p)=2;p此时也指向a[1]的,*p=2;...

设有如下定义:int *p; *p=100;则 printf("%d",p); 的输出结果是100,对...
int *p;*p=100;则 printf("%d",p); 的输出结果是100是不对的,p声明为一个int型指针,但是没有指向具体的内存空间。int类型在内存中占用了4个字节,也就是32位。int类型是有符号的,因此,32位并不会全部用来存储数据,使用最高位来存储符号,最高位是0,提示数据是正数,最高位是1,表示...

...printf("%d",++(*n));} void main() {int a=100; fun(&a);}此...
原因如下:在main函数中,将&a伪作参数传递给fun(int *n) ,所以指针n指向了a的地址,*n的值即为a的值,也就是100 在fun函数中,while((*n)--);注意,这个while语句后面有一个;分号,所以这一个while循环的作用是:将*n的值循环递减,直到(*n)--的值为0。又由于(*n)--是先带入,再...

相似回答
大家正在搜