C语言知识点二十八: 指针简介

 《指针简介》

1. 什么是指针?

    指针是一个其数值为地址的变量。正如,char类型的变量用字符作为其数值,int类型变量的数值是整数,指针变量的数值表示的是地址。

     请看下列语句:

int pooh = 5;
int * ptr;//定义指针变量ptr,*为间接运算符,下面就要介绍其用法和含义
ptr = &pooh;//将pooh的地址赋给ptr

对于ptr = &pooh,该语句称ptr "指向" pooh,即将变量pooh的地址存放在了指针变量ptr中。

2. 间接运算符: *

上述1中的语句中: 我们使用间接运算符*来获取pooh中存放的数值,即*ptr就代表了pooh。

int val = 0;
int bah = 10;

int * pa;
pa = &bah;
val = *pa;
以上三步与val = bah;相互等价,都是将bah的值赋给val

3. 指针声明: 我们在声明一个指针的时候,必须要说明指针所指向变量的类型。

原因如下:

1)不同的变量类型占用的存储空间大小不同;

2)有些指针操作需要知道变量类型所占用的存储空间;

3)程序需要了解地址中存储的是何种数据。

int * pi;   //pi是指向一个整数变量的指针
char * pc;  //pc是指向一个字符变量的指针
float * pf;  //pf是指向浮点变量的指针

注意*和指针名之间可以有空格

类型标识符表明了被指向变量的类型,就如int, char和float等等。然后在类型标识符后面添加星号(*)代表该变量是一指针。

4. 使用指针在函数间通信:

我们修改了往期博客的代码,写一个函数互换两变量的值。

#include<stdio.h>

void interchange(int * u, int * v);//声明函数
int main()
{
    int x = 5, y = 10;
    printf("Originally x = %d and y = %d.\n", x, y);
    interchange(&x,&y);
    printf("Now x = %d and y = %d.\n", x, y);

    return 0;
}

void interchange(int * u, int * v)//定义函数
{
    int temp;

    temp = *u;
    *u = *v;
    *v = temp;
}

程序输出如下:

程序的评价和解释:

函数interchange中将指针作为形参,主函数中将变量的地址作为实参传给形参,从而实现交换两变量的值。

 

posted on 2022-07-06 23:22  Daniel_lmz  阅读(208)  评论(0编辑  收藏  举报