您现在的位置是:网站首页 > 学无止境

C指针纳 威恩 学习笔记

ImdaM 2020-04-13 04:39:01 0人围观
简介C指针纳 威恩 学习笔记 读书笔记 记录于:海淀区北部文化中心图书馆

C指针纳 威恩 学习笔记 读书笔记 记录于:海淀区北部文化中心图书馆

第1章 内存、实时内存管理和虚拟内存
编译过程链:
源代码-》预处理-》编译-》汇编-》目标文件-》链接-》可执行文件

预处理:扩展源文件中指定的宏的过程,条件编译和包含头文件。

编译:将预处理的文件编译成汇编代码。词语分析、句法分析、代码生成等。编译过程输出是add.asm/add.s

const常量 初始化后 生命周期内不能被修改。常量指针是一个仅指向唯一内存地址的指针变量。因此,指针变量的值不能修改。

常量指针声明 <指针类型 *> const <变量名>

int * const prt1,char * const ptr2;

int n1 = 10;
int n2 = 20;
int* const p1 = &n1;
p1 = &n2; 错误


常量指针变量声明时 必须初始化。一旦初始化,常量指针就不能再指向其它内存地址。

常量指针:指 某个指针变量的值(变量的内存地址)不能修改指定的内存地址存放的值。不同指针可以指向指定变量。
常量指针声明 const <指针类型 *> <变量名>

int a = 10;
const int* p1;
int* p2;
p1 = &a;
*p1 =20; 不能修改
a =20;


指针常量: 指针变量是常量。指针变量仅指向被初始化的内存地址,指针以后不能指向内存单元。指定指针不能修改指定地址存储的值。
总之,不能改变指针变量的值,也不能修改存在该地址的值。
指针常量声明 const <指针类型 *> const <变量名>

        int a = 10;
int b =20;
const int* p1 = &a;
int* p2;
// *p1 =20; //不能修改常量指针指向的值
a = 20;
p1 = &b; //常量指针 一旦初始化就只能某个内存地址
// *p1 =30;


多级指针:<数据类型> ** <变量名>

int a=10;
int *p1 = &a;
int **mp1 = &p1;
printf("%d ",a);
printf("%d ",*p1);
printf("%d ",**mp1);


指针运算:允许 ++ -- + -,不允许除法/和乘法*

上一篇:C/C++与数据结构 王立柱 学习笔记

下一篇:零基础学算法 戴艳 学习笔记

文章评论