C语言指针详解

àì夳堔傛蜴生んèń 2022-07-15 13:48 246阅读 0赞

一、指针的概念

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

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

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

二、指针

1、声明的形式

数据类型 *变量名

2、代码段

#include
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)静态内存的控制权的交给编译器的,而动态内存的控制权是由程序员决定的

发表评论

表情:
评论列表 (有 0 条评论,246人围观)

还没有评论,来说两句吧...

相关阅读

    相关 C语言指针详解

    指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。 要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的 类型,指针的值或者叫指针所指向的内存区,

    相关 C语言指针详解

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

    相关 C 语言 指针详解

    1、指针的基本概念     指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。要搞清一个指针需要搞清指针的四方面的内容:指针的类型、指针所指向的

    相关 C语言指针详解

    这是一篇非常详细并且写的认真的C语言指针方面的文章 前言:复杂类型说明     要了解指针,多多少少会出现一些比较复杂的类型,所以我先介绍一下如何完全理解一个

    相关 深入理解C语言 - 指针详解

    一、什么是指针 C语言里,变量存放在内存中,而内存其实就是一组有序字节组成的数组,每个字节有唯一的内存地址。CPU 通过内存寻址对存储在内存中的某个指定数据对象的地址进行