深入理解C指针第一章小结1

1.1 指针和内存,C程序在编译后,会以三种形式使用内存。

(1) 静态/全局内存:在程序开始时分配,程序结束才消失,所有函数都能访问全局变量,static静态变量的作用域局限在定义它们的函数内部

(2)自动内存:在函数内部声明,函数被调用才创建,函数结束就消失。

(3)动态内存:内存分配到堆上,直到释放才会消失。malloc指针分配的内存,作用域局限于引用内存的指针。

1.1.3 简单阅读声明:将声明倒过来读

//指向const类型的指针,指针内容可以修改,指向的内容不能修改
const int* p; 
int const* p;

//const指针,指针内容不可修改,指向内容可以修改,必须要初始化
int* const p = &xxx;

//指针和指向内容都不可以修改,必须要初始化
int const* const p = &xxx;
const int* const p = &xxx;

1.1.8 NULL的概念

#define NULL  ((void *) 0 )
//NULL宏是强制类型转换为void执政的整数常量0
int* p;
p = 0;
p = NULL;
p = 100; //语法错误
p = num;//语法错误
 
原文地址:https://www.cnblogs.com/acgpiano/p/4026203.html