Linux兵工厂
认证:普通会员
所在专题目录 查看专题
5. C语言函数
6. C语言基本程序控制
7.C语言信息读写基础
8.C语言数值数组
9.一文搞懂C语言指针
10.C语言字符和字符串,你知多少?
作者动态 更多
Ubuntu16.04升级openssl至V3.0.12版本
09-03 10:44
ubuntu虚拟机图文安装详细教程
09-01 08:43
Ubuntu24搭建针对树莓派的Qt5.15交叉编译环境
08-31 09:53
这几个好用文档笔记软件,你在用吗
08-30 10:02
理解C++ std::function灵活性与可调用对象的妙用
08-27 13:19

9.一文搞懂C语言指针

指针是C语言中非常重要的概念,它提供了对内存地址的直接访问,允许在程序中进行灵活的内存操作。以下是有关C语言指针的详细解释:

1. 指针的定义和声明:

在C语言中,指针是一个变量,用于存储另一个变量的内存地址。

int *ptr;  // 定义一个整型指针

2. 取地址运算符(&):

取地址运算符 & 用于获取变量的地址。

int num = 10;
int *ptr = #  // ptr存储了变量num的地址

3. 间接引用运算符(*):

间接引用运算符 * 用于访问指针所指向地址的值。

int num = 10;
int *ptr = #
int value = *ptr;  // value存储了指针ptr所指向地址的值,即num的值

4. 指针的初始化:

指针可以在声明时初始化为 NULL 或者其他合法的地址。

int *ptr = NULL;  // 初始化为NULL

5. 指针的算术运算:

指针可以进行算术运算,例如指针加法、减法等,以便访问数组元素。

int arr[5] = {1, 2, 3, 4, 5};
int *ptr = arr;  // 指向数组的第一个元素

// 访问数组元素
int element1 = *ptr;     // 获取第一个元素的值
int element2 = *(ptr+1);  // 获取第二个元素的值

6. 指针与数组:

指针和数组在C语言中有着密切的关系。数组名本身就是一个指向数组第一个元素的指针。

int arr[5] = {1, 2, 3, 4, 5};
int *ptr = arr;  // 数组名arr就是一个指向数组的指针

// 使用指针访问数组元素
int element1 = *ptr;     // 获取第一个元素的值
int element2 = *(ptr+1);  // 获取第二个元素的值

7. 字符串和指针:

字符串在C语言中是以字符数组的形式存在的,指针常用于处理字符串。

char str[] = "Hello";
char *ptr = str;  // 指向字符串的第一个字符

// 使用指针访问字符串
char firstChar = *ptr;     // 获取第一个字符
char secondChar = *(ptr+1);  // 获取第二个字符

8. 指针与函数:

指针也可以用于传递函数参数,实现在函数内部对变量的修改。

void modifyValue(int *x) {
    *x = *x + 1;
}

int main() {
    int num = 10;
    modifyValue(&num);  // 传递指向num的指针
    // 现在num的值变成了11
    return 0;
}

9. 动态内存分配:

使用 malloccallocrealloc 函数进行动态内存分配,返回的是一个指向分配内存的指针。

int *dynamicArray = (int *)malloc(5 * sizeof(int));
// 使用动态分配的数组

free(dynamicArray);  // 释放动态分配的内存

指针是C语言中一项强大而灵活的特性,但也需要小心使用,避免引起潜在的错误和内存泄漏。深入理解指针的概念有助于更有效地编写C程序。

声明:本内容为作者独立观点,不代表电子星球立场。未经允许不得转载。授权事宜与稿件投诉,请联系:editor@netbroad.com
觉得内容不错的朋友,别忘了一键三连哦!
赞 3
收藏 4
关注 34
成为作者 赚取收益
全部留言
0/200
成为第一个和作者交流的人吧