随笔 - 76  文章 - 1  评论 - 0  阅读 - 30722

指针的应用

#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\n",p[i]);
    }
    //printf("%d",p[-2]);
    i=-5;
    while(i<0)
    {
        printf("%d\n",p[i]);
        i++;
    }
    
    return 0;
}

作者:静默虚空
欢迎任何形式的转载,但请务必注明出处。
限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。

posted on   redOrange01  阅读(151)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示