指针
1.指针种类
指向数据对象的指针(Object Pointer)
指向函数的指针(Function Pointer)
指向虚无的指针(void*类型)
2.什么是指针?
用官方的说法就是:指针也就是内存地址,指针变量是用来存放内存地址的变量,不同类型的指针变量所占用的存储单元长度是相同的,而存放数据的变量因数据的类型不同,所占用的存储空间长度也不同。
3.指针用来做什么
指针可以快速的访问数组元素,指针是内存的标签,为了访问内存,需要对内存里的单元进行编号如0,1,2,3,4(这的确很像房子跟房子的编号,如我住南新大街7栋(起始地址),301房(偏移地址),所以找我请到南新大街8栋301房,当然前面应该还有起始地址,如某某区的兰新大街), 为了存放这些编号(地址),就用了一个变量,即指针变量(它的值可能是0或1或2它指向的就是一个具体的存储单元)。
写简单的程序的话不用指针也行了吧。 比如, int a = 2; int p = &a; p = 3; 这里a是一个地址(编译后), 为了读写这个地址单元里的东西,可以用p,也可以用一般变量a。
4. 指针运用例子
//使用内置的字符串比较函数strcmp(param1,param2)比较指定字符串和输入字符串的大小
#include<stdio.h>
//用指针比较输入字符串与指定字符串的大小
//相等时程序退出
int main()
{
char *p="CBA123map", a[20], flag;
while(1)
{
printf("input a string:\n");
gets(a);
if(strcmp(a,p)==0)//说明输入字符较长
{
printf("相等!程序结束!");
break;
}
else if(strcmp(a,p)>0)
{
printf("%s > CBA123map\n",a);
}
else
{
printf("%s < CBA123map\n",a);
}
}
return 0;
}