c语法拾遗-关于指针变量的声明

#include <stdio.h>
#include <stdlib.h>

/*
//以前的写法
    int *p = 5;
这个是一种错误的写法,p首先是一个指针变量
    int *p,a;
    p = &a;
    *p = 5;
p是一个指针,指向一个内存地址,你不指明p指向的位置,
程序怎么会知道你要给哪块内存赋值呢?你可以申请一块堆空间给p,
或者直接定义一个变量,让p指向该变量
*/

int foo()
{
    int *p;
    p = (int *)malloc(sizeof(int));
    *p = 5;
    return *p;
}

int main()
{
    int i = foo();
    printf("%d",i);
    return 0;
}

 

posted @ 2013-10-13 14:33  CJin  阅读(200)  评论(0)    收藏  举报