一、概念
指针的类型就是所指向的程序实体的类型,大小也一样。指针的定义往往和其指向的程序实体一起。
指针的定义:
类型 *数组名[元素个数]
Int a;
Int *p=&a;
指针定义的时候必须要初始化,有时候不想让指针指向任何的变量,可以用null这个关键字来置空。而&符号可以看成是*的逆符号。
在指针作为函数的参数的时候,注意*符号和&的对立使用,得到想要的地址或者参数值。
二、指针使用
一般指针变量的使用用*和&符号可以实现,需要注意的是一下三个方面:
1、 指针和数组的使用;
2、 指针和字符串的使用;
3、 指针数组;
4、 指针函数;
5、 带参数的主函数;
下面用一个程序简单地演示上述知识点:
#include<stdio.h>
int print1()
{
return 1;
}
/* 主函数带参数演示 */
int main(int argc,char *argv[])
{
/* 一维数组的演示 */
int i,j;
int a[5]={1,2,3,4,5};
int *p;
p=a;
for(i=0;i<5;i++)
{
printf("%d ",*(p+i));
}
printf("\n");
/* 二维数组的演示 */
int b[3][3]={1,2,3,4,5,6,7,8,9};
int (*p2)[3]=b;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
printf("%d ",*(*(p2+i)+j));
}
printf("\n");
}
/* 指针字符串的演示 */
char num[20]="abcdefg";
char *p3;
p3=num;
printf("%s\n",p3);
/* 指针数组数组的演示 */
int *p4[5]={&a[0],&a[1],&a[2],&a[3],&a[4]};
for(i=0;i<5;i++)
{
printf("%d ",**(p4+i));
}
printf("\n");
/* 指针函数的使用 */
int (*fun)();
fun=print1;
int x=(*fun)();
printf("%d\n",x);
return 0;
}