C语言指针地址和内容如何理解?

struct frame {
uchar datalen; //数据的长度
uchar data[len]; //数据
uchar CS;

};
struct frame * pframe; //定义指针变量
*(pframe->data + pframe->datalen + 1) = 0x1A;

这时的 pframe->CS=0X1A ,对不对?
上一句中pframe->data 表示的是地址, pframe->datalen表示内容,
这么理解对不对?
如果要付值给pframe->data=0X1A;
这时pframe->data 表示的是地址还是内容。

{5, {'1', '2', '3', '4', '5'}, 0x1A}这么个结构
pframe->data是个数组,也是个地址,数组名本身就是自己的地址,数组里面装内容。
它和指针的区别是:指针本身有个地址,编译器用指针变量的名字来寻址。
内容有另一个地址,但是内容没有名字,只能通过指针间接寻址。
指针这个地址里面的内容,是另一个内容的地址
(另一个内容可以任何东西,也就是说,还可以是个地址。。。)
pframe->datalen表示数组的长度,不是内容,内容在数组里面呢。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-12-16
指针是指放东西的地址,内容就是放在该地址里的东西!