指针的应用

Posted lijianmin6

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了指针的应用相关的知识,希望对你有一定的参考价值。

#include<stdio.h>
int main()
{
    /*
    指针是const
    表示一旦得到某个变量的地址,不能在指向其他变量
    int *const q=&i;//q是 const
    q++; //error
    
    所指是const
    表示不能通过这个指针取修改那个变量(并不能使得那个变量成为const)
    const int*p=&i;
    *p=26;//error!(*p)是const
     i= 26;//OK
     p=&j;//Ok
    
     判断
     int i;
     const int* p1 =&i;
     int  const*p2 =&i;
     int *const p3 =&i;
     #判断那个被const了的标志是const在*的前面(表示所指的东西不能修改)还是后面(表示指针不可被修改)
    
    转换
    总是可以不一个非const的值转换成const的
    void f(const int* x);
    int a=15;
    f(&a);//OK
    const int b=a;
    
    f(&b);//ok
    b=a+1;//error
    
    
    const数组
    const int a[]={1,2,3,4,5,6};
    数组变量已经是const的指针了,这里的const表明数组的每个单元都是const int
    所以必须通过初始值进行赋值
    
    保护数组值
    因为把数组传入函数时 是地址,所以那个函数内部可以修改数组的值
    为了保护数组不被函数破坏,可以设置参数为const
     int sum(const int a[],int leength)
    */
    int a[]={5,15,34,54,14,2,52,72};
    int *p=&a[5];
    int t,i;
    t=sizeof(p)/sizeof(p[0]);
    for(i=0;i<=t;i++)
    {
        printf("%d ",p[i]);
    }
    //printf("%d",p[-2]);
    i=-5;
    while(i<0)
    {
        printf("%d ",p[i]);
        i++;
    }
    
    return 0;
}






























































以上是关于指针的应用的主要内容,如果未能解决你的问题,请参考以下文章

指针的重要应用场合

C|指针的10种经典应用场合

指向指针的指针的理解和应用

双指针应用一:碰撞指针

实验11——指针的基础应用

实验11——指针的基础应用