给指针赋值整数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//1
#include <stdio.h>
int main()
{
int *ptr;
int n = 5;
ptr = &n;//&n就是已分配内存的(int型)的地址
printf("%d",*ptr);
}
//2
#include <stdio.h>
int main()
{
int *ptr;


*ptr = 5;
printf("%d",*ptr);

}

通过上述例子:我们知道了指针变量不能直接赋值。因为创建一个指针时,系统只分配了存储指针本身的内存,并未分配存储数据的内存,因此在用指针之前必须用已分配的地址初始化它。以上述为例2中的意思就是把5存储在ptr所指向的位置,但是pt没有初始化,其值是一个随机值,所以不知道5将存储在何处。程序会崩溃.