一.指针是一个值为内存地址的变量(或数据对象)

地址形象化地称为指针,通过它能找到以它为地址的内存单元。

指针变量就是地址变量,用来存放地址,指针变量的值是地址(即指针)

二.指针变量

1.使用指针变量

例:通过指针变量访问整型变量。

#include<stdio.h>

int
main()

{

int a=100,b=10;  //定义整型变量a,b,并初始化

    int *pointer_1,*pointer_2;  //定义指向整型数据的指针变pointer_1,pointer_2

pointer_1=&a;//把a的地址赋给指针变量pointer_1

pointer_2=&b;//把b的地址赋给指针变量pointer_2

printf(\"a=%d,b=%d\\n\",a,b);//输出变量a,b的值

    printf(\"*pointer_1=%d,pointer_2=%d\\n\",*pointer_1,*pointer_2);//输出变量a,b的值

return 0;

}

注:1.“*”表示指向;

2.*pointer_1表示“指针变量pointer_1所指向的变量”,也就是变量a;

3.程序第五行的pointer_1和pointer_2表示定义两个指针变量,““表示该变量是指针变量;程序最后一行printf函数中的pointer_1,*pointer_2代表指针变量pointer_1和pointer_2所指向的变量。

2.定义指针变量

 如:int *pointer_1,*pointer_2;  //类型名 * 指针变量名

 定义指针变量时必须指定“基类型“,指针变量的基类型用来指定此指针变量可以指向的变量的类型;

在定义的同时对其初始化

如:int *p=&a;//定义指针p,并指向a

指针变量中只能存放地址,不要将一个整数赋给指针一个指针变量

如:*p=100;//不合法

3.引用指针变量

(1)给指针变量赋值

如:p=&a; //把a的地址赋给指针变量p

(2)引用指针变量指向的变量

如果已执行(1),即指针变量p指向了整型变量a

printf(“%d”,*p);
//以整数形式输出指针变量p所指向的变量的值,即变量a的值

(3)引用指针变量的值

如:printf(“%o”,p);

4.指针变量作为函数参数

函数的参数不仅可以是整型,浮点型,字符型等数据,还可以是指针类型。它的作用是将一个变量的地址传送到另一个函数中。

例:对输入的数按大小顺序输出

#include <stdio.h>

int main()

{

void swap(int * p1,int * p2);

int a,b;

int * pointer_1,* pointer_2;

printf(\"please enter two integernumbers:\");

scanf(\"%d,%d\",&a,&b);

pointer_1=&a;

pointer_2=&b;

if(a<b)

    swap(pointer_1,pointer_2);

printf(\"max=%d,min=%d\\n\",a,b);

return 0;

}

void swap(int *p1,int * p2)

{

int temp;

temp=* p1;

* p1=* p2;

* p2=temp;

}

收藏 打印