指针的应用
#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;
}
作者:静默虚空
欢迎任何形式的转载,但请务必注明出处。
限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用