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;
}
相关推荐
LDR00614 天前
Type-C 快充全面升级!LDR6601 赋能个人护理便携电机,重塑剃须刀 / 理发器新体验
c语言·开发语言
雪碧聊技术14 天前
Tree.js是什么?一文讲透
开发语言·javascript·ecmascript
码云数智-园园14 天前
C++20 Modules 模块详解
java·开发语言·spring
swordbob14 天前
NIO的channel中什么是 fd(File Descriptor,文件描述符)
java·开发语言·nio
源分享14 天前
Java线程同步的多种实现方法(非常详细)
java·开发语言·jvm
Luminous.14 天前
C语言--day30
c语言·开发语言
玖玥拾14 天前
C/C++ 数据结构(七)栈、容器适配器
c语言·数据结构·c++··容器适配器
何以解忧,唯有..14 天前
Go语言循环语句详解:for、range与循环控制
开发语言·算法·golang
謓泽14 天前
C语言不是语法,是通往机器的地图。
c语言·开发语言
云水一下14 天前
从零开始学 PHP 系列(一):PHP 的前世今生与开发环境搭建
开发语言·php