const * ptr
typedef struct
{
short ch;
char da[4];
}TEST,*test;
TEST PTR;
void CH(const TEST * ptr)
{
ptr->ch = 2;//编译错误,不能改变 *ptr 指向的数据
//因为,ptr->ch等于(*ptr).ch,所以不能修改TEST型变量
ptr = PTR;//正确,因为ptr 是TEST *型,不属于TEST型
}
const ** ptr
typedef struct
{
short ch;
char da[4];
}TEST,*test;
test *PTR;
void CH(const test * ptr)
{
(*ptr)->ch = 2;//编译正确,ch是TEST型,不是 TEST * 型;
(*ptr) = *PTR;//错误,不能改变TEST *;
ptr = PTR;//正确,不属于TEST*;
}