C语言指针详解

一、指针的概念

  在计算机中,所有数据都是放在内存中的,为了能够正确地访问到这写内存单元,在C语言中为了每个内存单元编上号。通过这些唯一的编号,就可以找到所需的内存单元,那么 这个内存单元的编号就称之为内存单元的地址,这个地址就是指针

  在c语言中,指针类型是最重要的数据类型,也是c语言醉主要的风格之一。利用指针变量可以访问数据结构,可以很方便地使用数组和字符串;并能像汇编语言一样处理内存地址。

  指针变量是包含内存地址的变量。通常的变量是包含一个值。而指针变量是某一个数据类型的内存地址。

二、指针

1、声明的形式

数据类型 *变量名

2、代码段

#include<stdio.h>
main(){

int *pint,n=61;
pint = &n;
*pint =*pint-1;
printf("%d",n);
}

在上述代码中,*pint间接引用变量n,将n值所在的内存地址赋给pint指针变量,然后通过*间接运算法访问指针变量pint所指向的内存单元的值,即n的值,因此改变*pint的值实际上是改变了n的值

三、内存管理

1.动态内存

内存泄露:将内存分配后没有释放,导致内存不够的现象

内存耗尽:分配了过多的内存没有及时释放

2.静态内存

在程序运行时由编译器分配的内存;程序中的各种变量,在编译源程序时就已经为其分配了所需的内存空间,当该变量在作用域内使用完毕时,系统就会自动释放所占用的内存空间。

3.动态内存和静态内存的区别

(1)静态内存的分配是在程序开始编译时完成的,不占用cpu资源;而动态内存的分配是在程序运行时完成的,动态的分配与释放都是占用cpu资源的

(2)静态内存是在栈上分配的;而动态内存是在堆上分配的

(3)动态内存分配需要指针和引用数据类型的支持,而静态内存不需要

(4)静态内存分配是在编译qian5就已经确定了内存快的大小,属于按计划分配内存;而动态内存的分配是在程序运行过程中,根据需要随时分配的,属于按需分配

(5)静态内存的控制权的交给编译器的,而动态内存的控制权是由程序员决定的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值