LinuxC——指针

指针在C语言中的应用是非常多的,而且也是很重要的。

一、什么是指针

指针是一个值为内存地址的变量。就像char类型变量的值为字符,int类型变量的值为整数。

在使用指针的时候,一定会用到这两个符号‘*’和 ‘&’,下面就首先介绍这两个运算符

间接运算符*

这个运算符也被称为解引用运算符,我们通过间接运算符找出存储在指针指向的某个内存中的值。

我们用一个例子来说明

ptr = &bah;
var = *ptr;

假设ptr是一个已经声明好的指针,我们把bah的地址赋给ptr,然后通过间接运算符来取出ptr指向的内存中的值,并且把这个值赋给var。

上面这两条语句和起来就相当于

var = bah;

当*后面跟一个指针名或地址时,*给出存储在指针指向地址上的值

址运算符&

如果希望得到一个变量的地址,就需要用到取址运算符。

&nures 表示nures的地址。

二、声明指针

声明指针的时候必须要指定指针指向的变量的类型,因为不同的变量类型占用不同的存储空间,一些指针操作需要知道操作对象的大小。

接下来看一些声明指针的例子

int *pi;      //pi是指向int类型变量的指针
char *pc;     //pc是指向char类型变量的指针
float *pf;    //pf是指向float类型变量的指针

类型说明符表明了指针所指向对象的类型,‘*’表明声明的变量是一个指针。

三、指针的应用

这里通过一个例子来说明

#include <stdio.h>

int main()
{
	int a = 10;
	int *pi = &a;

	printf("before change a = %d\n", a);

	*pi += 10;

	printf("after change a = %d\n", a);

	return 0;
}

首先定义一个int类型的变量,并且给这个变量初始化。然后定义一个指向这个变量指针。

*pi += 10;就是将 *pi 加上10 再赋值给 *pi, 这里的操作同样是对a进行的操作。因为 pi是指向a这个变量的,pi中存放的就是a的地址,a的值是10,所以对pi进行操作就是对a进行的操作。

打印出改变之前和改变之后的值,看看其结果。


本篇博客只是简单的介绍了一下指针,与指针有关的详细应用会在以后写出来的。

猜你喜欢

转载自blog.csdn.net/y____xiang/article/details/80861960