C语言指针 深入浅出讲解

指针在我的理解就是一个指向值的地址,地址是连续的,比如这个:

我写了一个数组,分别赋值4,5,6...11;

它们的地址分别如下:

可以看到地址增长是4,这是因为,地址虽然是连续的,但是每个地址也是有空间的,int型在我电脑是4bytes,所以这里是以4位长;

数组指针:

int (*arrayPtr)5 这里用括号是因为\[\]的优先级比较高,所以要用括号括起来,

cpp 复制代码
#include <stdio.h>

int main() {
    // 声明一个数组,包含5个整数
    int arr[5] = {1, 2, 3, 4, 5};
    
    // 声明一个指向包含5个整数的数组的指针
    int (*arrayPtr)[5];
    
    // 让指针指向我们刚刚声明的数组
    arrayPtr = &arr;
    
    // 通过数组指针访问数组元素
    printf("First element: %d\n", (*arrayPtr)[0]);
    printf("Third element: %d\n", (*arrayPtr)[2]);
    
    return 0;
}

指针数组:

cpp 复制代码
#include <stdio.h>

int main() {
    // 声明5个整数
    int a = 1, b = 2, c = 3, d = 4, e = 5;
    
    // 声明一个包含5个整数指针的数组
    int *ptrArray[5];
    
    // 让数组中的每个指针分别指向上面声明的整数
    ptrArray[0] = &a;
    ptrArray[1] = &b;
    ptrArray[2] = &c;
    ptrArray[3] = &d;
    ptrArray[4] = &e;
    
    // 通过指针数组访问整数
    printf("First element: %d\n", *ptrArray[0]);
    printf("Third element: %d\n", *ptrArray[2]);
    
    return 0;
}
相关推荐
2zcode29 分钟前
基于MATLAB深度学习的乳腺钼靶影像乳腺癌智能诊断系统设计与实现
开发语言·深度学习·matlab·乳腺癌
MoonBit月兔32 分钟前
错过大赛报名?MoonBit 开源大赛- 8 月黑客松正式开启
开发语言·ai-native·moonbit
weixin_538601971 小时前
智能体测开Day31
开发语言·python
geovindu1 小时前
java: Facade Pattern
java·开发语言·后端·外观模式·结构型模式
listening7771 小时前
HarmonyOS 6.1 元服务深度优化:从“秒开”到“常驻”的极致体验
java·开发语言·spring
布朗克1681 小时前
Go 入门到精通-29-测试与基准
开发语言·后端·golang·测试与基准
无相求码2 小时前
C程序的内存到底怎么分的?栈、堆、全局区一张图讲清楚
c语言
格林威2 小时前
工业相机Chunk功能全解析:图像嵌入时间戳、编码器元数据(附堡盟C#代码)
开发语言·人工智能·数码相机·计算机视觉·c#·视觉检测·工业相机
小大宇2 小时前
Python 集成 Conda
开发语言·python·conda
天空'之城2 小时前
C 语言工业级通用组件手写 08:精准软件消抖
c语言·嵌入式开发·工业级组件·软件消抖·按键防抖