标签:内容 地址 pdo 空间 amp dog 运算 weight 零基础
结构体指针的定义与基本数据结构的指针类似,使用"*"符号即可:
#include <stdio.h>
struct tagPetDog{
char szName[20];
char szColor[20];
char nWeight;
};
int main(int argc, char* argv[])
{
tagPetDog dog = { "旺财", "黄色", 5 };
tagPetDog* pDog = &dog;
return 0;
}
结构体指针也支持取内容,加减常数等操作,同基本数据结构的指针类似,在此不再赘述。
结构体指针通过"->"运算符,可以引用结构体成员:
#include <stdio.h>
struct tagPetDog{
char szName[20];
char szColor[20];
char nWeight;
};
int main(int argc, char* argv[])
{
tagPetDog dog = { "旺财", "黄色", 5 };
tagPetDog* pDog = &dog;
printf("%s 颜色:%s, 体重:%d公斤\r\n",
pDog->szName,
pDog->szColor,
pDog->nWeight);
return 0;
}
如果某个函数需要使用结构体,那么一般推荐使用结构体指针作为参数,它有两个好处:
#include <stdio.h>
struct tagPetDog{
char szName[20];
char szColor[20];
char nWeight;
};
void FunAddWeight(tagPetDog* pDog, int nAddWeight)
{
pDog->nWeight += nAddWeight;
}
int main(int argc, char* argv[])
{
tagPetDog dog = { "旺财", "黄色", 5 };
tagPetDog* pDog = &dog;
printf("%s 颜色:%s, 体重:%d公斤\r\n",
pDog->szName,
pDog->szColor,
pDog->nWeight);
FunAddWeight(pDog, 10);
printf("%s 颜色:%s, 体重:%d公斤\r\n",
pDog->szName,
pDog->szColor,
pDog->nWeight);
return 0;
}
标签:内容 地址 pdo 空间 amp dog 运算 weight 零基础
原文地址:https://www.cnblogs.com/shellmad/p/11695653.html