徐建岗网络管理 2020-05-03
指针是C语言一个重要的数据类型。指针可以访问简单的数组、字符串等,它是C语言的核心所在,用好指针可以在C语言程序开发中起到事半功倍的效果。
指针是一个变量,其值为另一个变量的地址,即内存位置的直接地址。
跟其他变量和常量一样,必须在使用之前对其进行声明。指针变量声明的一半形式为:
type *var-name;
上面type指的是指针的数据类型,它必须是一个有效的C语言数据类型,var-name为指针变量的名称。下面给出一下示例:
int *ip; //一个整型的指针 double *dp; //一个double的指针 float *fp; //一个浮点型的指针 char *ch; //一个字符型的指针
使用指针一般会进行以下几个步骤:定义一个指针变量、把变量地址赋值给指针、访问指针变量中可用地址的值。下面一个简单的例子进行说明:
#include <stdio.h> int main () { int var = 20; /* 实际变量的声明 */ int *ip; /* 指针变量的声明 */ ip = &var; /* 在指针变量中存储 var 的地址 */ printf("Address of var variable: %p\n", &var ); /* 在指针变量中存储的地址 */ printf("Address stored in ip variable: %p\n", ip ); /* 使用指针访问值 */ printf("Value of *ip variable: %d\n", *ip ); return 0; }
输出:
Address of var variable: 006FFB68 Address stored in ip variable: 006FFB68 Value of *ip variable: 20
定义一个数组时,系统会在内存中为该数组分配一个储存空间,数组名就是数组在内存中的首地址,内存单元的地址就是指针,因为数组名也是一个指针。
int *p,a[5]; p=a; //数组名也是一个指针 p=&a[0]; //也可以这样赋值,因为数组名也就是a的首地址
下面一个简单例子说明:
#include<stdio.h> int main() { int a[10]; int *p,i; //定义指针 printf("请输入10个数:\n"); for(i=0;i<10;i++) //输入10个整数 { scanf("%d",&a[i]); } printf("\n"); for(p=a;p<(a+10);p++) //利用指针输出数组中的这10个整数 { printf("%d ",*p); } printf("\n"); return 0; }
输出:
请输入10个数: 1 2 3 4 5 6 7 8 9 1 1 2 3 4 5 6 7 8 9 1 请按任意键继续. . .