Arduino指向结构变量的指针和指向结构数组的指针打印输出
Posted perseverance52
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Arduino指向结构变量的指针和指向结构数组的指针打印输出相关的知识,希望对你有一定的参考价值。
Arduino指向结构变量的指针和指向结构数组的指针打印输出
- 开发板验证采用:Arduino nano
- 开发环境:Arduino IDE
- 文章来源于《C语言 指向结构变量的指针和指向结构数组的指针》
struct stu
{
int num;
char *name;
char sex;
float score;
}boy[5]={
{101,"Zhou ping",'M',45},
{102,"Zhang ping",'M',62.5},
{103,"Liou fang",'F',92.5},
{104,"Cheng ling",'F',87},
{105,"Wang ming",'M',58},
};
void setup()
{
Serial.begin(115200);
}
void loop()
{
struct stu *ps;//定义结构指针变量
char buff[40];
char str[6];//用于转换结构体浮点数变量输出
Serial.print("No\\tName\\t\\t\\tSex\\tScore\\t\\n");
for(ps=boy;ps<boy+5;ps++){//结构变量指针指向结构数组首地址
dtostrf(ps->score,2,1,str);//浮点数不能直接sprintf()函数输出否则输出为?。
sprintf(buff,"%d\\t%s\\t\\t%c\\t%s\\t\\n",ps->num,ps->name,ps->sex,str);
Serial.println(buff);
delay(3000);
}
}
- 串口输出
- 将指针变量放在结构体定义的后面,效果同上
struct stu
{
int num;
char *name;
char sex;
float score;
}boy[5]={
{101,"Zhou ping",'M',45},
{102,"Zhang ping",'M',62.5},
{103,"Liou fang",'F',92.5},
{104,"Cheng ling",'F',87},
{105,"Wang ming",'M',58},
},*ps;//在这里定义的结构指针变量
void setup()
{
Serial.begin(115200);
}
void loop()
{
// struct stu *ps;//定义结构指针变量
char buff[40];char str[6];
Serial.print("No\\tName\\t\\t\\tSex\\tScore\\t\\n");
for(ps=boy;ps<boy+5;ps++){//结构变量指针指向结构数组首地址
dtostrf(ps->score,2,1,str);
sprintf(buff,"%d\\t%s\\t\\t%c\\t%s\\t\\n",ps->num,ps->name,ps->sex,str);
Serial.println(buff);
delay(3000);
}
}
*如果指向输出一个学生成员的信息,修改for循环条件即可
for(ps=boy;ps<boy+1;ps++)//只输出{101,"Zhou ping",'M',45}
for(ps=boy+1;ps<boy+2;ps++)//只输出{102,"Zhang ping",'M',62.5}
等待以此类推即可。
- 姓名
name
修改成String
数据类型,打印则选择%s,对象.c_str()
struct stu
{
int num;
String name;
char sex;
float score;
}boy[5]={
{101,"Zhou ping",'M',45},
{102,"Zhang ping",'M',62.5},
{103,"Liou fang",'F',92.5},
{104,"Cheng ling",'F',87},
{105,"Wang ming",'M',58},
},*ps;
void setup()
{
Serial.begin(115200);
}
void loop()
{
// struct stu *ps;//定义结构指针变量
char buff[40];char str[6];
Serial.print("No\\tName\\t\\t\\tSex\\tScore\\t\\n");
for(ps=boy;ps<boy+1;ps++){//结构变量指针指向结构数组首地址
dtostrf(ps->score,2,1,str);
sprintf(buff,"%d\\t%s\\t\\t%c\\t%s\\t\\n",ps->num,(ps->name).c_str(),ps->sex,str);
Serial.println(buff);
delay(3000);
}
}
以上是关于Arduino指向结构变量的指针和指向结构数组的指针打印输出的主要内容,如果未能解决你的问题,请参考以下文章