当前位置: 首页 > news >正文

针对考研的C语言学习(定制化快速掌握重点3)

1.数组常见错误

数组传参实际传递的是数组的起始地址,若在函数中改变数组内容,数组本身也会发生变化

#include<stdio.h>
void change_ch(char* str)
{str[0] = 'H';
}
int main()
{char ch[] = "hello";change_ch(ch);printf("%s\n", ch);return 0;
}

2.指针

指针变量加减法操作时,每次加一,增加的长度是其基类型的长度*1

#include<stdio.h>
int main()
{int i[] = { 1,2,3,4,5 };char ch[] = "hello";int* pInt = &i;char* pCh = &ch;printf("%d\n", *pInt);printf("*(pInt+1) == %d\n", *(pInt + 1));printf("%c\n", *pCh);printf("*(pCh+1) == %c\n", *(pCh + 1));return 0;
}

指针的另一种用法

#include<stdio.h>
int main()
{int i[] = { 1,2,3,4,5 };char ch[] = "hello";int* pInt = &i;char* pCh = &ch;printf("%d\n", pInt[0]);printf("%c\n", pCh[0]);return 0;
}

这种用法称为“数组指针”(array pointer)或“指针算术”(pointer arithmetic):

  1. pInt[0]:等同于 *(pInt + 0),实际上获取的是 i[0] 的值,即 1
  2. pCh[0]:同样等同于 *(pCh + 0),获取的是 ch[0] 的值,即字符 'h'

这利用了 C 语言中指针和数组的关系,允许通过数组下标语法来访问指针指向的内容。

3.引用

下节继续

http://www.lryc.cn/news/447070.html

相关文章:

  • pikachu XXE(XML外部实体注入)通关
  • shell脚本定时任务通知到钉钉
  • 2.4K star的GOT-OCR2.0:端到端OCR 模型
  • 【JavaEE】——线程的安全问题和解决方式
  • 初步认识了解分布式系统
  • react 为什么不能学习 vue3 进行静态节点标记优化性能?
  • Elasticsearch黑窗口启动乱码问题解决方案
  • Logtus IT员工参加国际技术大会
  • ant design vue组件中table组件设置分组头部和固定总结栏
  • 2024年信息安全企业CRM选型与应用研究报告
  • 【后端开发】JavaEE初阶——计算机是如何工作的???
  • Linux(Ubuntu)源码安装postgresql16.3
  • Python 入门教程(7)面向对象 | 7.6、多态
  • Cilium + ebpf 系列文章-什么是ebpf?(一)
  • RabbitMQ08_保证消息可靠性
  • 恶意Bot流量识别分析实践
  • Java2 实用教程(第6版)习题2 第四题
  • HashMap和ConcurrentHashMap的区别
  • css 下拉框展示:当hover的时候展示下拉框 z-index的用法解释
  • spring装配笔记
  • vscode【实用插件】Notes 便捷做笔记
  • 中间件:maxwell、canal
  • postman控制变量和常用方法
  • Spring Boot 中整合 Kafka
  • 什么是开放式耳机?具有什么特色?非常值得入手的蓝牙耳机推荐
  • 编译 FFmpeg 以支持 AV1 编解码器以及其他硬件加速选项(如 NVENC、VAAPI 等)
  • 解释一下Java中的多线程。如何创建一个新的线程?
  • Java语言程序设计基础篇_编程练习题**18.30 (找出单词)
  • MyBatis中 #{} 和 ${} 的区别
  • Android Perfetto 学习