首先说下结果,你最后输出的10就是地址。 解释: int *p=10; 这一行代码的意思是声明一个int类型指针,该指针指向的内存地址就是10。当然这个地址肯定是个非法地址,如果后面试图访问这个指针的内容程序就会异常。 补充:如果你想定义一个int类型指针,给该指针分配内存并且初始化数值为10。 1)在c++中可以这么写: int* p = new int(10); 2)如果是纯C的,就要分两行 int* p = (int*)malloc(sizeof(int)); *p = 10; 3)或者定义的指针指向其他变量 int a; int* p = &a; *p=10; 总之,定义一个指针,要想使用,就得给他分一块内存,要么直接向系统申请,要么指向其他变量。
旧人旧城旧余温—
2025-06-20 21:31:00
int *p=10; printf("%d",p); 为什么最后输出是10,这是因为你写错了。应该写成: printf("%d",*p); 或者是 int a,*p=&a;*p=10; printf("%d %p",*p,p);