|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
各位大佬可以来解答一下吗?问题写在注释了。萌新真不懂了。
#include<stdio.h>
int main ()
{
char a='F';
int f=123;
char *pa = &a;
int *pb =&f;
printf("%c %d\n",*pa,*pb);// 加*,打印所存值
*pa='C';//这里为什么要加*???
*pb+=1;//还有这里
printf("%c %d\n",*pa,*pb);//加*,打印所存值
printf("%p\n%p\n",pa,pb);//不加*,打印地址
printf("%p\n%p\n",'C',124);//为什么和上面打印的地址不一样 ? ??
return 0;
/*这是运行结果:
F 123
C 124
000000000062FE0F
000000000062FE08
0000000000000043
000000000000007C
*/
}
还有这个
#include<stdio.h>
int main ()
{
int ch[5]={8,5,3,2,4};
int*p1;//定义
p1=&ch[4];//取址 与定义分开了 可以这样吗?
int *p2; //定义
p2=3;//这里没加*,是把指针当普通整形变量用了吗?
printf("%d %d",*p1,p2);
return 0;
} |
|