C【语言】指针
2026/8/4 18:37:18 网站建设 项目流程

我们今天来学习指针

内存;程序运行过程中,可以访问到的内存储存空间,计算机为了方便内存,一字节为单位,堆内存进行编号

地址:计算机管理内存是,给内存的编号

指针;指针即为地址,地址即为指针,指针指向了一个具体空间

指针变量;变量,保地址的变量,需要占用内存空间

··1.指针基础

1.指针变量的定义

基类型*变量名 基类型;该指针指向的空间存储的数据类型 int float double void 构造类型 *;类型说明符,说明后面的变量是一个指针 变量名;遵循标识符的命名规则 习惯用 p 开头 int*pmax char*ptmp

sizeof(pmax)sizeof()

64位占八个bit

32 四

指针变相保存的地址是目标的首地址

2.指针变量初始化和复制

野指针;指针刚开始没有初始化,或者指向一个已经释放的空间的指针(有风险)

避免野指针;那我们就可以给指针进行初始化 {给指针初始化为null} int * p=null;

或者给指针进行初始化

3.指针运算符

* ——————指针运算符

用来访问指针变量的内存空间中的数据

*指针变量------》指针降级为基类型普通变量

1.*指针运算符 只能发拿工资啊指针变量前面

2.*指针变量,访问指针变量指向的数据,

3.*指针变量,访问的字节数取决于该指针的基类型

p=&num

printf(“%d”,*p)

&——————取地址运算符

& 变量名(获取某个变量首地址)

1.&只能给变量取地址,不能给常量或者表达式取地址

2.&给某个变量取地址时,获取的是这个变量首字节的地址

4.指针算术运算

+ - * / % ++ --

-指针1-指针2 表示两个元素之间的元素个数(地址之间字节差/基类型)

++指针+1;表示从当前地址向后偏移sizeof(基类型)字节

--指针-1

5.指针作为函数参数

1.被调函数中,想要修主调函数中定义的变量,传递该变量的地址;

2.被调函数想要返回多个结果是,可以传递主调函数定义的变量地址,地址指向的空间可以保存被调函数被调的结果

6.指针和一位整形数组的关系

数组的数组名位数组的首元素地址

注意

1.数组名为地址常量(右值)可以赋值给别人,但是不能被赋值。

===>&a[0]
a[0] ---->*a
a[1] ---->*(a+1)
a[2] ---->*(a+2)
a[n] ---->*(a+n)

一维整形数组作为函数参数传递:

void print_array(int a[], int len)
{}
void print_array(int *pa, int len)
{}

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询