指针理解问题

先分享个参考链接:
从5个维度来看C语言指针(指针就是个纸老虎)
各位看官耐心看完上面这篇就好,不用看我的,楼上的大佬讲的很细很好理解了。

我写博客就是记录一下学习过程(好记性不如烂笔头),可惜我感觉自己还是没能理解到精髓也不知道怎么表述,只能理解多少讲多少吧,讲个大概咯。
多尝试用指针多撸代码吧。
然后上我的测试代码:

#include <stdio.h>
 
int main(void)
{
	int *pNumber = 1;
	int number = 2;
	int array[3] = {1,2,3};

	int i, j, k;

	printf("pNumber自身的地址是:0X%x\n", &pNumber);/**< '&'取地址符,取指针变量pNumber的地址 */
	printf("pNumber自身的数值是:0X%x\n", pNumber);/**<  */
	printf("==============================================================================================\n");
	printf("number自身的地址是:0X%x\n", &number);/**<  */
	printf("number自身的数值是:0X%x\n", number);/**<  */
	printf("==============================================================================================\n");
	printf("array自身的首地址是:0X%x\n", array);/**<  */
	for (i = 0; i < 3; i++)
	{
		printf("array[%d]自身的数值是:0X%x,array[%d]自身的地址是:0X%x\n", i, array[i], i, &array[i]);/**<  */
	}
	printf("==============================================================================================\n");

    pNumber = number;
	printf("pNumber = number后:pNumber自身的数值是:0X%x,自身的地址是:0X%x\n", pNumber,&pNumber);/**<  */

	pNumber = &number;
	printf("pNumber = &number后:pNumber自身的数值是:0X%x,自身的地址是:0X%x\n从该指针变量存放的数值(地址值)取值:0X%x\n", pNumber, &pNumber, *pNumber);/**<  */

	pNumber = array;
	printf("pNumber = array后:pNumber自身的数值是:0X%x,自身的地址是:0X%x\n", pNumber, &pNumber);/**<  */
	
	for (j = 0; j < 3; j++)
	{
		printf("pNumber[%d] = 0X%x\n", j, pNumber[j]);
	}

	printf("==============================================================================================\n");

	for (k = 0; k < 3; k++)
	{
		printf("pNumber[%d] = 0X%x\n", k, pNumber + k);/**< 首地址右移k * sizeof(int)个字节 */
		printf("pNumber[%d] = 0X%x\n", k, *(pNumber + k));/**< ‘*'取数值符号,从地址中取出其中存放的数值 */
	}
	
    return 0;
}

运行结果:
在这里插入图片描述

定义一个指针变量(int *pNumber),指针自身有自己的地址(& pNumber),然后在这个地址上,存放有数值(如number的数值2赋值给指针变量pNumber,此时指针变量pNumber的数值就是2;如果是将number的地址值(&number)赋值给指针变量pNumber,那此时指针变量pNumber的数值就是number这个变量的地址值)。
pNumber = &number 为例:
指针变量存放的数值一般都是其他变量的地址,对这个指针变量存放的值(变量number的地址值0X12ffab8)进行取值操作(*pNumber)可得到该指针变量关联的变量(number)的数值(2)。

个人理解,错了还请指出纠正。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值