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

C语言指针:补充

字符串指针与指针数组

 字符串指针
```c
char *s1 = "hello";
char *s2 = "world";
char *s3 = "china";
```
- `s1`, `s2`, `s3`都是字符指针,指向字符串常量
- 这些字符串存储在只读内存区,不能修改内容
- 指针本身可以指向其他字符串

指针数组
```c
char* str[10]; // 包含10个char*类型元素的数组
char* str[10] = {"hello","world","china"}; // 初始化指针数组
```
- `str`是指针数组,每个元素都是`char*`类型
- 可以存储多个字符串的地址
- 未初始化的元素默认为NULL

 二级指针
```c
char** p; // 二级指针,指向char*类型的指针
```
- 用于处理指针数组
- `p = str`时,`p`指向指针数组的第一个元素
- 通过二级指针可以访问和修改指针数组中的元素

内存管理
堆内存分配
```c
void *malloc(size_t size); // 申请堆内存
void free(void *ptr);      // 释放堆内存
```
- `malloc`返回`void*`,需要强制类型转换
- 使用后必须`free`,避免内存泄漏
- 不能多次释放同一块内存

函数指针
```c
int (*p)(int,int) = add; // 函数指针
```
- 函数名代表函数入口地址
- 通过函数指针可以间接调用函数
- 常用于回调函数机制

 main函数参数
```c
int main(int argc, const char *argv[])
```
- `argc`: 命令行参数个数
- `argv`: 指针数组,每个元素指向一个参数字符串
- 第一个参数通常是程序名

关键概念对比
| 概念 | 定义 | 示例 | 用途 |
|------|------|------|------|
| 指针数组 | 元素为指针的数组 | `char* arr[10]` | 存储多个字符串地址 |
| 数组指针 | 指向数组的指针 | `char (*p)[10]` | 操作二维数组 |
| 二级指针 | 指向指针的指针 | `char** p` | 处理指针数组 |
| 函数指针 | 指向函数的指针 | `int (*p)(int,int)` | 实现回调机制 |

http://www.dtcms.com/a/320142.html

相关文章:

  • Day 34:GPU训练与类的call方法
  • [特殊字符] 未来图钉式 AI 时代的智能生态布局:副脑矩阵与人机共振的系统构想
  • USB2.0 和 USB3.0 枚举对比
  • 数据标注之数据集的类型与如何标注
  • Ubuntu24.04的“errors from xkbcomp are not fatal to the X server”终极修复方案
  • 【驱动】RK3576-Debian系统使用ping报错:socket operation not permitted
  • 3_steels_detect_CSDN_20250807_165405
  • spring cache(二)核心接口
  • Claude Code MCP 网络搜索配置命令
  • Qwen3-235B-A22B-Instruct-2507模型介绍
  • 【更新被拒绝,因为推送的一个分支的最新提交落后于其对应的远程分支。】
  • 【网络编程】一请求一线程
  • 【洛谷题单】--分支结构(一)
  • 《网络空间测绘技术白皮书》
  • Docker容器强制删除及文件系统修复完整指南
  • 8. 字符串转换整数 (atoi)
  • 大模型LL04 微调prompt-Tuning方法入门(背景与发展)
  • 【自动驾驶】《Sparse4Dv3》代码学习笔记
  • Redis的五个基本类型(2)
  • 单页面应用(SPA)和多页面应用(MPA)
  • RP2040下的I2S Slave Out,PIO状态机(三)
  • pybind11 的应用
  • (Python)Python爬虫入门教程:从零开始学习网页抓取(爬虫教学)(Python教学)
  • 腾讯iOA技术指南:实现数据防泄漏与高级威胁防护
  • Spark Memory 内存设计的核心组件、对比Flink内存配置
  • langchain入门笔记02:几个实际应用
  • 生信分析进阶16 - 可准确有效地检测血浆 ccf-mtDNA 突变的分析方法
  • DrissionPage实战案例:小红书旅游数据爬取
  • 串口转ADC/PWM 串口转I2C 串口转GPIO工具
  • c++20--std::format