C语言指针名就是指针指向的变量的地址这句话对么?

127.0.0.1/24 2020-06-07 10:47:19
各位大佬你们好,其实标题的这句话我知道是正确的,但是我现在突然思路一下受到了阻塞就是在写下面的这个程序的时候我发现如果我对指针名直接输出的话输出的值并不是指针指向的变量的地址,我不知道是为什么。麻烦各位大佬给我解一下惑,感激不尽
#include<stdio.h>
int main()
{
int a;
int *pa=&a;
printf("请输入一个数\n");
scanf("%d",pa);
printf("指针名的地址:%p\n",&pa);
printf("指针名的值 :%lx\n",&pa);
printf("指针的地址:%p\n",*pa);
printf("指针的值 :%d\n",*pa);
printf("变量的地址:%p\n",a);
printf("变量的值 :%d",a);
return 0;
}
...全文
212 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
真相重于对错 2020-06-07
  • 打赏
  • 举报
回复
int a;
	int *pa = &a;
	printf("请输入一个数\n");
	scanf("%d", pa);
	printf("指针名的地址:%p\n", pa);
	printf("指针名的值  :%lx\n", *pa);
	printf("指针的地址:%p\n", pa);
	printf("指针的值  :%d\n", *pa);
	printf("变量的地址:%p\n", &a);
	printf("变量的值  :%d", a);
	return 0;
127.0.0.1/24 2020-06-07
  • 打赏
  • 举报
回复
引用 1 楼 真相重于对错 的回复:
&是取地址。*是取地址里的值。 pa 是 指针,所以&pa 就是二级指针,而不是 pa 。
取值符和取址符我都明白,但是我把&pa改为pa输出的结果还是一样的。我就对这个有点迷惑到了。
真相重于对错 2020-06-07
  • 打赏
  • 举报
回复
&是取地址。*是取地址里的值。 pa 是 指针,所以&pa 就是二级指针,而不是 pa 。
六道佩恩 2020-06-07
  • 打赏
  • 举报
回复

#include<stdio.h>
int main()
{
    int a;
    int *pa=&a;
    printf("请输入一个数\n");
    scanf("%d",pa); 
    printf("指针名的地址:%p\n",&pa);
    printf("指针名的值  :%lx\n",pa);
    printf("指针的地址:%p\n",&pa);
    printf("指针的值  :%d\n",pa);
    printf("指针指向变量的值  :%d\n",*pa);
    printf("变量的地址:%p\n",&a);
    printf("变量的值  :%d",a);
    return 0;
} 

70,013

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧