首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

8、指针

2012-12-18 
八、指针一、概念指针的类型就是所指向的程序实体的类型,大小也一样。指针的定义往往和其指向的程序实体一起。

八、指针

一、概念

指针的类型就是所指向的程序实体的类型,大小也一样。指针的定义往往和其指向的程序实体一起。

?

指针的定义:

类型 *数组名[元素个数]

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;

}

热点排行