您的位置:首页 > 其它

指针

2021-05-12 23:55 288 查看

指针

一.指针是什么?

内存区的每一个字节有一个编号,这就是地址。由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元,将地址形象化地称为“指针”。

变量的访问方式有两种:

1.直接访问:通过变量名直接访问;

2.间接访问:没办法直接通过地址访问,所以只能通过指针变量间接访问,即将变量的地址存放在另一个变量(指针变量)中。

二.为什么使用指针?

使程序更加简洁,高效,紧凑;能有效表示复杂的数据结构;动态分配内存;得到大于一个的函数返回值

三.指针变量如何定义?

储存类型 类型名 *指针变量名;//当储存类型省略时为auto类型

eg: int i=1;

   int *p;  //int是指i的类型,是基类型

   p=&i;

也可以一步合成:

  int i=1;

  int *p=&i;

1.指针变量前面的“*”表示该变量为指针型变量。指针变量名不包括“*”。

2.在定义指针变量时必须指定基类型。一个变量的指针的含义包括两方面,一是以存储单元编号表示的纯地址(如编号为1024的字节),一是它指向的存储单元的数据类型(如int ,char等等)

3.指向整型数据的指针[strong]类型表示为“int *”,读为“指向int的指针”或简称“int指针”。[/strong]

[strong]4.指针变量中只能存放地址(指针),不要将一个整数赋给一个指针变量。[/strong]

四.指针变量如何引用?

[strong]eg:int i,*p;  //定义变量和指针变量
[/strong]

[strong]  p=&i;    //将变量i的地址赋给指针变量p[/strong]

[strong] *p=2;    //给变量赋值[/strong]

[strong] printf("%d\n",*p); //引用指针变量p,显示i的值[/strong]

[strong]来段代码示例:[/strong]

#include #include int main(int agrc,char*agrv[])
{
    int *p1,*p2,*p,a,b;  //p1,p2 的类型为int*
    printf("输入两个整数\n");
    scanf("%d%d",&a,&b);
    p1=&a;  //p1指向变量a
    p2=&b;  //p2指向变量b
    if(a<b)
    {
        p=p1;
        p1=p2;
        p2=p;
    }
    printf("%d %d\n",a,b);   //运行结果a,b的值不会调换
    printf("max=%d min=%d\n",*p1,*p2); //输出p1,p2 所指向的变量的值
return 0;
}

[strong][/strong]

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

代码走起

//输入三个整数,由小到大排序
#include #include void sort (int *pa,int *pb);
int main(int agrc,char*agrv[])
{
    int a=3,b=6,c=1,*p1=&a,*p2=&b,*p3=&c;
    sort(p1,p2);
    sort(p1,p3);
    sort(p2,p3);
    printf("由小到大排序:\n%3d%3d%3d",*p1,*p2,*p3);
    printf("%d %d %d\n",a,b,c);
return 0;
}
void sort (int *pa,int *pb)
{
    int temp;
    if(*pa>*pb)
    {
        temp=*pa;
        *pa=*pb;
        *pb=temp;
    }
}
再来
#include #include void change(int* k,int *w,int *e,int *d);
int main(int agrc,char*agrv[])
{
    int a=1,b=2,c=3,d=4;
    int *p,*q,*m,*n;
    p=&a;
    q=&b;
    m=&c;
    n=&d;
    change(p,q,m,n);
    printf("%d %d %d %d\n",a,b,c,d);
return 0;
}
void change(int* k,int *w,int *e,int *d)
{
    *k=10;
    *w=20;
    *e=30;
    *d=40;
}

过段时间会写一篇指针的详解啊啊啊

  

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: