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;
}
相关推荐
@Turbo@1 分钟前
【QT】在Qt6的`QTextEdit`中,同一行更新内容
开发语言·qt
showmeyourcode0.o4 分钟前
QT常用控件(1)
开发语言·c++·qt
不二狗11 分钟前
每日算法 -【Swift 算法】查找字符串数组中的最长公共前缀
开发语言·算法·swift
不二狗15 分钟前
每日算法 -【Swift 算法】将整数转换为罗马数字
开发语言·算法·swift
小黄人软件20 分钟前
C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。
开发语言·c++·visual studio
Cxzzzzzzzzzz31 分钟前
go语言的GMP(基础)
开发语言·性能优化·golang
chao_7891 小时前
链表题解——反转链表【LeetCode】
开发语言·python·算法
AI迅剑1 小时前
模块二:C++核心能力进阶(5篇)篇二:《多线程编程:C++线程池与原子操作实战》(14万字深度指南)
java·开发语言·c++
代码的余温1 小时前
Java原子类:CAS与volatile的无锁奥秘
java·开发语言·线程安全
oioihoii1 小时前
C++中锁与原子操作的区别及取舍策略
java·开发语言·c++