C语言基础--指针

 一 .指针的含义
 
在 C 语言的广袤世界里,指针犹如一把神奇的钥匙,为开发者打开了高效编程和灵活操作内存的大门。
 
指针,简单来说,是一个变量,它存储的是另一个变量的内存地址。这种独特的特性赋予了 C 语言强大的功能和灵活性。
 
想象一下内存就像是一个巨大的仓库,每个变量都占据着其中的一个房间。而指针就是指向这些房间的门牌号码。通过指针,我们可以直接找到并操作对应的变量,而无需通过繁琐的间接方式。
 
例如:int* p 就是一个 int*类型的指针变量
 
二.指针的作用.
 
指针的一个重要应用是动态内存分配。在程序运行时,我们可以根据实际需求申请一定大小的内存空间,并通过指针来管理和操作这块内存。这使得程序能够更加灵活地适应不同的情况,避免了预先固定内存大小可能带来的浪费或不足。
 
指针还可以作为参数传入函数内,保证形参数值的改变而改变实
 
对于数组的操作,指针更是展现出其独特的优势。一个指向数组的指针,可以像遍历数组一样方便地访问数组中的每个元素。而且,通过指针的运算,如指针的递增和递减,可以更加高效地处理数组数据。
 
然而,指针的强大也伴随着一定的风险。如果不小心使用,可能会导致诸如野指针、内存泄漏等严重的问题。野指针指向了未定义或无效的内存区域,访问它可能会导致程序崩溃。内存泄漏则是指在使用动态内存分配后没有正确释放,导致内存资源的浪费,最终可能使程序因内存不足而无法正常运行。
 
野指针:如未初始化,访问时超范围等等.
 
三.指针数组与数组指针
 
顾名思义,指针数组指的是指针的数组,即是一个数组,里面存放的每一个元素都是一个指针。
而数组指针则是数组的指针.其是一个指针变量.
 
 
其次,数组名也可当做一个指针,其指向的是数组的第一个元素的地址。
例如:arr[1][1],则 arr 指向的是 arr[0]的地址,而 arr[0]  指向的是则是 arr[0][0]的地址
虽然其指向的地址相同 但含义却不同,其跨度也不同,针对二维数组, arr+1 其一的跨度是一个一维数组,而 arr[0]+1 则其一的跨度是在 arr[0]的数组内的一个元素跨度.
 
 
 
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值