关于C语言指针

本人是一名大一的新生,对于某些概念理解的可能并不出色。此文章会随着我学习的深入进行不断的修改。

在学习数据结构(C语言版)的时候(早期有学过用python表示的数据结构)发现在C语言所表示的数据结构中,指针的运用非常广泛,我也发现自己对指针的理解十分不到位。故现在正在重新深入学习指针中。

今日是深入学习指针的第一天,也借此来记录一下暂时的所得。我粗陋地认为可以把指针看成一块踏板哪怕是多级指针,也是在通过与低一级的指针之间建立联系,靠着踏板之间的相互联系,通过一块踏板跳向另一块踏板,并以此来获得踏板中的内容。(由于水平暂时比较低,今日暂且写这么多,随着学习深入,我希望能不断的完善脑中的观念)

//第一次修改博客,加入了学习到的新东西

稍微深入了一点指针与二维数组的关系,亦是发现如下东西。例如int a[6][6];*a即a[0]的地址,而*a+1则为a[0][1]的地址

且看下方代码

#include <stdio.h>
 
int main() {
	int a[6][6];
	printf(" % d", *a);
	printf(" % d", a);
	printf(" % d", *a + 1);
	printf(" % d", *(a + 1));
}

 且看后续输出

则可以很清楚的看到地址的差异

可知a[6][6]是一个二维数组 *a只是其地址,那么如何来取得其中的值呢,则需要解引用,我认为吧,二维数组嘛,前面得加两个**才能取得地址中所寄存的值

且看代码实例

#include <stdio.h>
 
int main() {
	int a[3][3] = { 0,1,2,3,4,5,6,7,8 };
	printf("%d\n",**a);//a[0][0]
	printf("%d\n", *(*a+1));//a[0][1]
	printf("%d\n", *(*(a+1)));//a[1][0]
}

且看输出结果即可

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值