int *p = NULL;
p是指针地址,指针可以存值,如果不定义就是野指针。
int * p 指针类型是 int * 指针所指向类型是int
char *p 指针类型是 char * 指针所指向类型是char
int **p 指针类型是 int ** 指针所指向类型是int*
在32位的平台里,指针本身占据了4个字节长度
const char* p 常量指针,p也就是它的地址不能改
char* const p = a 指针常量,p也就是它的固有常量不能改
char* p = "abc" 定义了一个指针变量,指向字符串首地址,字符串不能改变
*p = a[10] p指向数组中一个元素,则p+1指向同一数组的下一个元素
char *p = (char *)mallloc(sizeof(char)* 10);
要包含头文件#include<stdlib.h>
使用malloc最好使用free()释放空间
Linux虚拟地址空间
4G内存:1G内核空间和3G用户空间;
用户空间:数据段: 全局数据 static静态区
代码段 : 代码,常量
栈: 局部变量,形参
堆: 如malloc等