C语言指针总结与应用

本文详细介绍了C语言中的指针,包括定义、常用方法、与引用的区别、与数组的关系以及指针与内存的交互。强调了指针安全使用的重要性,如避免野指针和内存泄露,同时探讨了动态内存分配的注意事项和内存区域的划分。
摘要由CSDN通过智能技术生成



1. 前言

1.1 指针的定义

我们使用*表示指针,例如

int *p; //定义一个指针P,指向的内容为int类型。
int *p[n]; //[]的优先级高于*,则p是一个长度为n的数组,数组内的元素为指针类型,指向的内容为int型。
int (*p)[n]; //指针p指向一个数组,数组内的元素为int类型。
int **p;  //二级指针,指针p指向*p,仍然是一个指针,*p指向的内容为int型,一般用于函数的形参。
int (*p)(int); //指针p指向一个函数,函数的形参类型为int,返回值为int。

指针的值代表的是地址,是指向的内存区的首地址,指针所占用的空间只受系统寻址位数影响,如果是32位系统,则指针占用4个字节,如果是16位系统,则占用2个字节。



2. 指针的常用方法

  1. 代指一个变量
int a = 3;
int *p = &a;
*p = 4;
printf("%d", a); // a = 4

  1. 表示数组
int a[10];
int *p = a;
int i;
for (i = 0; i < 10; i++)
{
   
  *p++ = i;
  printf("%d", a[i]); // a[i] = i
}

  1. 指向结构体
struct PhoneParameter
{
   
  int m_Length;
  int m_Width;
  int m_Height;
}PhPar;

PhPar st_MyPhPar = {
   15, 7, 1};

int CalVolume(PhPar *pstPar)
{
   
  int Vol;
  Vol = pstPar->m_Length * pstPar->m_Width * pstPar->m_Height;
  return Vol;
}

printf("%d", CalVolume(&st_MyPhPar)); //105

  1. 指向函数
int n = 6;
int array[n] = {
   0,<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值