C语言指针详解:什么是指针及指针变量

需积分: 10 0 下载量 140 浏览量 更新于2024-08-20 收藏 2.31MB PPT 举报
"这篇资料是关于C语言中的指针概念,由内蒙古科技大学工程训练中心的徐国海讲解。内容涵盖了指针的定义、指针变量、指针变量的定义和使用,以及如何通过指针操作变量等基础知识。" 在C语言中,指针是一个非常重要的概念,它涉及到程序对内存的直接操作。指针本质上是存储单元的地址,也就是内存中某个位置的标识符。在内存中,每个存储单元都有一个唯一的地址,例如3050、3052和3054等。这些地址用于区分不同的数据存储单元,数据存储单元的大小取决于其所存储的数据类型,比如整型变量占用2个字节,长整型占用4个字节。 指针变量是用来存储这些地址的变量,也就是说,指针变量的值是内存中某个存储单元的地址。在C语言中,使用取地址符`&`可以获取变量的地址,例如`p = &j;`表示将变量j的地址赋值给指针变量p。一旦一个指针变量存储了另一个变量的地址,我们就说这个指针变量指向那个变量。 指针变量的定义需要指定其基类型,这是因为不同类型的变量在内存中占据的字节数不同。例如,`int *p;`定义了一个指向整型变量的指针,`float *f;`定义了一个指向浮点型变量的指针,`char *c;`定义了一个指向字符型变量的指针。基类型决定了指针在移动时会按照该类型相应的字节数前进。 在C语言中,有三种方式给指针变量赋值:1) 将指针设置为`NULL`或`0`,表示指针未指向任何特定地址;2) 使用取地址符`&`赋予变量的地址,如`p1 = &a;`;3) 将一个已有的指针赋值给另一个指针,如`p2 = p1;`。 一旦有了指向变量的指针,就可以通过解引用操作`*`来访问和修改变量的值。例如,如果`p1`指向整型变量`i`,那么`*p1`就代表变量`i`的值,可以通过`scanf`函数读取用户输入并赋值给`*p1`,再通过`printf`函数输出`*p1`来显示变量`i`的当前值。 指针是C语言中强大的工具,它允许程序员直接操纵内存,实现高效的数据结构和算法。理解和熟练使用指针对于深入理解C语言及其底层机制至关重要。