C语言-指针的理解

要理解C语言代码中指针的意思,最好的方法就是画表。
先从最简单的代码开始,用画表来分析。

例1

#include "studio.h"

int main( void ) {
    int a = 0x00;
    int * ptr = &a;
    printf( "0x%X\n", ptr );
    printf( "0x%X\n", &a );
    printf( "0x%X\n", *ptr );
    printf( "0x%X\n", a );
}

可以这样画表:
画表分析

因为0x1000地址里存放的变量a是int类型,所以指向变量a的指针类型是int *。同理,如果变量a的类型是unsigned char,则指向变量a的指针类型应该是unsigned char *。

例2

数组,或者结构体,名字就是指针。

#include "studio.h"

typedef struct {
    int a;
} STRUCT1;

STRUCT1 struct1 = { 1 };
int array[3] = { 1, 2, 3 };

int main( void ) {
    int a = 0x00;
    int * ptr = &a
    printf( "0x%X\n", ptr );
    printf( "0x%X\n", &a );
    printf( "0x%X\n", *ptr );
    printf( "0x%X\n", a );
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值