c语言的指针

本文详细介绍了内存的划分、地址表示、指针的概念、指针变量的使用以及不同架构下指针变量的大小。通过示例代码演示了内存分配、取地址和指针操作的过程。
摘要由CSDN通过智能技术生成

内存

内存会划分成一个个的内存单元,单元大小是一个字节

每个内存单元都有一个编号

例如

32位电脑

有32个地址线(发出1/0的信号)

0000 0000 0000 0000 0000 0000 0000 0000

0000 0000 0000 0000 0000 0000 0000 0001

......

1111 1111 1111 1111 1111 1111 1111 1111

一共有2的32次方个地址序列,通过计算会有4gb的内存。

int main()

{

        int a=10;//向内存申请4个字节,存储10

        &a;//取地址操作符

        return 0;

}

按f10进行调试,之后进行监视,得到地址所在位置;之后点击内存输入&a得到地址内存

int main()

{

        int a=10;//向内存申请4个字节,存储10

       // &a;//取地址操作符

        printf("%p\n",&a);//%p以地址为格式打印

        return 0;

}

指针变量

int main()

{

        int a=10;

        int*p=&a;//p就是指针变量,*说明p是指针变量,int说明所指向的对象是int类型的

        char ch='w';

        char*pc=&ch;

        return 0;

}

内存单元

编号——>地址——>指针

存放指针的变量就是指针变量

int main()

{

        int a=10;

        int* p=&a;

        *p=20;//解引用操作符,意思是通过p中存放的地址,找到p所指的对象,*p就是p所指对象

          return 0;      

}

指针变量的大小

int main()

{

        printf("%zu\n",sizeof(chra*));

         printf("%zu\n",sizeof(short*));

       printf("%zu\n",sizeof(int*));

        printf("%zu\n",sizeof(float*));

         printf("%zu\n",sizeof(double*));

      

        

        return 0;

}

不管是什么类型的指针,都是在创建指针变量,指针变量是用来存放地址的,指针的大小取决于一个地址存放的时候需要多大空间

32位机器的地址:32位机器的地址:32bite=4byte 则指针变量大小是4个字节

64位机器的地址:64位机器的地址:64bite=8byte 则指针变量大小是8个字节

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值