以下是引用q934623325在2015-5-24 18:52:44的发言:
#include<stdio.h>
2 #include<stdlib.h>
3 void f (int *p)
4 {
5 p=malloc(siziof(int));
6 *p=12;
7 }
8 int main ()
9 {
10 int *p;
11 f(p);
12 printf("%d\n",*P);
13 return 0 ;
14 }
你的程序为什么错?你只需要自问自答这个问题即可:函数f()中的p跟main()中的p是同一个实体吗?如果实在还不明白,就把指针的声明int*改掉,返回原始的int形式看看,自己一定遇到过并解答过的。
记住:指针的类型int*,其实是一个typedef,无非就是PINT这样的一个自定义类型,所以它的用法跟PINT p是一样,亦即与int p是一样的。
指针只是一个普通的变量而已。