智能车制作

标题: C语言指针你或许不知道的地方 [打印本页]

作者: 戥家三少    时间: 2014-5-5 10:50
标题: C语言指针你或许不知道的地方
指针个人有些不太明白的地方,请大家指点一下。
指针占的内存是多少?首先,指针是一个变量吧,不同类型的指针可以指向相应类型的变量。那这里就有个问题了,浮点型的指针与整形的指针占的内存是不是一样的?如果一样的话又以什么来区分浮点型还是整形?如果不一样的话,那如果在编译链表时不就会占用更多的内存,因为链表后都有一个指向下个数据的指针。
作者: 热血青年    时间: 2014-5-5 11:02
指针是4个字节(不同的编译平台不晓得通用不  反正学C语言时是的) 它是存放的地址  并不是变量   所以也就不存在所占内存不一样的问题

作者: zjh328986199    时间: 2014-5-5 11:03
uint32 i = 0x11223344;
1: volatile uint8 *ptr1 = &i;
2: volatile uint32 *ptr2 = &i;

指针占用的内存大小要看你是几位的单片机,32位的话是大小就是32位。

所以1和2,指针占的大小是一样的,但是到底有什么区别呢?
    当你访问ptr1的时候,cpu会取uint8的量,而你访问ptr2的时候,它会取uint32的量。
*ptr1的值为0x44;
*ptr2的值为0x11223344;

具体内容,你可以看看c语言指针一块,都有讲解的。


作者: loveme06    时间: 2014-5-5 21:30
4byte
作者: loveme06    时间: 2014-5-5 21:31
[attach]59462[/attach]
作者: 戥家三少    时间: 2014-5-6 08:11
loveme06 发表于 2014-5-5 21:31

感谢了

作者: 若要走    时间: 2014-5-10 20:22

作者: 若要走    时间: 2014-5-17 10:56

作者: 若要走    时间: 2014-5-20 19:06





欢迎光临 智能车制作 (http://111.231.132.190/) Powered by Discuz! X3.2