C语言指针


前言

众所周知,在C语言基础中,指针基本是最难的一个点,这里给大家分享一下个人对指针的见解。如有不足,还请评论补充。新手上路,大佬轻喷。

以下是本篇文章正文内容,下面案例可供参考

一、指针是什么?

指针在C语言中表示用来指示一个内存地址的计算机语言中的变量或者中央处理器。最大的作用是构造数据结构,使用指针将不连续的内存空间连接到一起。其实指针并不难,但是它特别灵活,可以与函数和数组结合起来用,所以就导致初学者学起来很难。

二、通过代码分析了解指针

在指针中有两个符号&与*。&是用来获取一个变量的地址,又叫取地址符。*是用来获取某地址对应的值,有叫间接运算符,简单来说*就是用来取值的。

1.通过代码了解指针

代码如下:

#include<stdio.h>
int main(){
    //声明变量num,赋值为5 
    int num = 5;
    //通过间接运算符和取地址运算符来获取num的值 
    int value = *(&num);
    //打印num的地址 
    printf("num的地址 = [%p]\n",&num);
    //打印num和value的值,发现num和value相等
    printf("直接获取num的值 = [%d]\n",num); 
    printf("通过指针指向地址来获取num的值 = [%d]\n",value); 
    return 0;
}  

1.1运行结果

num's address = [0061fec8]
num's value = [5]
value's value = [5]

--------------------------------
Process exited after 0.5744 seconds with return value 0
请按任意键继续. . .
    综上代码第一段和第一行运行结果可以看出&num的作用就是用来获取一个数据存储在计算机中的地址,第二行我们打印出了num的value值,最后一段代码与第三行运行结果可以发现我们通过这个数的地址一样可以获取到他的值。

2.通过代码发现指针的值和地址是指向变量值的哪里

代码如下:

#include<stdio.h>
int main(){
	int number = 5;
	int *ptr = &number;
	//number的地址 
	printf("输出number的地址 = %p\n",&number);
	//number的值 
	printf("输出number的值 = %d\n",number);
	// ptr的地址
	printf("输出ptr的地址 = %p\n",&ptr);
	//ptr的值
	printf("输出ptr的值 = %p\n",ptr);
	//ptr所指向的变量的值 
	printf("输出ptr所指向地址相对于的值 = %d",*ptr);
	return 0;
}

2.1运行结果

输出number的地址 = 0061fecc
输出number的值 = 5
输出ptr的地址 = 0061fec8
输出ptr的值 = 0061fecc
输出ptr所指向地址相对于的值 = 5
--------------------------------
Process exited after 2.108 seconds with return value 0
请按任意键继续. . .    综上代码与代码运行结果可以看出,通过指针指向number后,指针ptr的值与number的地址一样。这样我们就可以通过ptr来获取number的值,并对其进行修改等其他操作。


总结

以上就是我个人的见解与解释,只是简单介绍了一下什么是指针和指针的作用和用法。最后,简单说一句:指针就是地址,地址可以存东西,也可以去东西,还可以存地址。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值