首页
发现
课程
培训
文章
案例
问答
需求
服务
行家
赛事
热门搜索
发布
消息
注册
|
登录
首页
/
文章
/
详情
《C语言程序设计》第七章 指针
算法工匠
5天前
浏览108
关注
本章讲完,课程也就宣告结束了。我们学院的考试内容就到本章截止!本课程的核心内容是第五章和第六章!虽然在我们学院的教学过程中,本章的内容只需要大概了解。本章涉及的知识点会比较深,需要反复实践才能掌握,不过指针确实是C语言的特色。2025年4月,新增本章节内容!
带病坚持上课会让病情加重,之前腰就已经非常痛了,带着护腰上完一周课后,结果病情彻底爆发出来。于是只能休息,痛苦的休息。人要趁着健康的时候多积累能力,否则很多时候我们只能无奈的接受。2018年的时候,我就带病坚持上了一学期,这次不敢这么做了,趁着清明假期好好调整!
指针是C语言中最强大但也最令人困惑的概念之一。我将从基础到深入逐步讲解指针的概念,本人用的很少很少,但作为一个重要知识点必须要讲。
一、指针基础概念
1. 什么是指针
指针是一个变量,其值为另一个变量的内存地址。
int var = 20; // 实际变量
int *ptr = &var; // 指针变量,存储var的地址
2. 指针操作符
`&` (取地址运算符):获取变量的内存地址
`*` (解引用运算符):访问指针所指向地址的值
二、指针声明与初始化
1. 声明指针
int *ip; // 整型指针
double *dp; // 双精度浮点指针
char *cp; // 字符指针
2. 指针初始化
int x = 10;
int *p = &x; // p指向x的地址
// 或者分开写
int *p;
p = &x;
三、指针的使用
1. 通过指针访问值
int value = *p; // 获取p指向地址的值
*p = 30; // 修改p指向地址的值
2. 指针与数组
int arr[5] = {1, 2, 3, 4, 5};
int *p = arr; // 指向数组第一个元素
// 访问数组元素
printf("%d", *p); // 第一个元素
printf("%d", *(p+1)); // 第二个元素
四、指针的高级用法
1. 指针的指针
int x = 10;
int *p = &x;
int **pp = &p; // 指向指针的指针
printf("%d", **pp); // 输出10
2. 指针与函数
传递指针到函数
void increment(int *p) {
(*p)++;
}
int main() {
int x = 5;
increment(&x);
printf("%d", x); // 输出6
return 0;
}
返回指针的函数
int* getPointer(int *p) {
return p;
}
3. 动态内存分配
int *arr = (int*)malloc(5 * sizeof(int)); // 动态分配数组
// 使用数组...
free(arr); // 释放内存
五、指针的注意事项
1. 野指针:未初始化的指针可能指向任意内存地址
int *p; // 野指针
*p = 10; // 危险操作!
2. 空指针:使用NULL或nullptr表示不指向任何地址
int *p = NULL;
if (p != NULL) {
*p = 10;
}
3. 指针运算:指针可以进行加减运算,但要注意边界
int arr[5] = {1, 2, 3, 4, 5};
int *p = arr;
p++; // 现在指向arr[1]
六、指针与字符串
在C语言中,字符串通常用字符指针表示:
char *str = "Hello";
// 或者
char str2[] = "World";
char *p = str2;
指针是C语言的核心概念,理解指针对于掌握C语言至关重要。需要多练习才能熟练掌握指针的使用。
在我们学院,大一学生学的是最努力的,不知为何到了大二就开始严重懈怠了。看着学生们的成长路径,确实很着急!课堂上三番五次的劝说如同泥牛入海!本章完结
修订记录
20250310 完成初稿;
20250405 修订内容;
来源:通信工程师专辑
登录后免费查看全文
立即登录
科普
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2025-04-09
最近编辑:5天前
算法工匠
博士后
|
高级工程师
诚信做事 认真讲课 传播知识
关注
获赞 408
粉丝 2662
文章 429
课程 40
点赞
收藏
作者推荐
可试听
数字信号处理和MATLAB仿真(第一部分 理论学习和仿真)
¥1000
5.0
立即查看
0/200
清空
提交
还没有评论
课程
培训
服务
行家
金砖大赛工程仿真执行仲裁长赵敏专家:工业软件定义金砖工业未来
2022第四届中国仿真技术应用大会-复合材料专题论坛(回放)
大连理工大学唐春安教授:城市空间重塑,向上还是向下?
第三届中国仿真技术应用大会——新能源及高效储能系统仿真专题论坛
相关推荐
OpenFOAM基础入门22讲:适用于OpenFOAM零基础人员学习
ANSYS CFD行业解决方案:旋转机械
旋转电极金属粉末制粉过程仿真方法
《声学分享客》第二十八期:定向声技术介绍及应用(声学号角辜磊主讲)
最新文章
这款8核2.2GHz+6T算力的国产平台,有什么理由不支持?
高压管道法兰连接密封性安全评估研究
氢能源:可持续未来的希望之光,还是尚在摸索的前行之路?
缅甸7.9级地震造成泰国曼谷损失惨重,是飞来横祸还是并非偶然?| 缅甸7.9级地震分析简报(2)
超大地震的地面运动特征,我们的认识还远远不足 | 缅甸7.9级地震分析简报(1)
热门文章
2024仿真秀618学习狂欢课程特惠大放送
可持续的汽车复合材料制造
航空专用电池-1
结构工程师双证研修班
【JY】从一根悬臂梁说起
其他人都在看
2024第四届中国算力之都·宁夏 工程仿真大赛CAE网格赛道【赛事通知】
锂离子电池生产现场异物管控
故障诊断实验台 | BTS100轴承寿命预测故障实验台(16.8w)
固态电池碾压油车,轻松突破1000公里,石油税收大窟窿谁来填?
IAV:采用移动粒子半隐式(MPS)方法模拟电机中的自由流动冷却液的技术
VIP会员
学习计划
福利任务
下载APP
联系我们
微信客服
联系客服
人工服务时间为周一至周五的9:30-19:30
非工作时间请在微信客服留言
客服热线:
4000-969-010
邮箱:
service@fangzhenxiu.com
地址:
北京市朝阳区莱锦创意园CN08座
帮助与反馈
返回顶部