学点 C 语言(25): 数据类型 - 结构数组与结构指针
结构数组:
include <stdio.h>
int main(void)
{
struct Rec {int x,y;};
struct Rec rs[10];
size_t i;
for (i = 0; i < sizeof rs/sizeof rs[0]; i++) {
rs[i].x = i;
rs[i].y = i * 2;
}
for (i = 0; i < sizeof rs/sizeof rs[0]; i++) {
printf("%d, %d\n", rs[i].x, rs[i].y);
}
getchar();
return 0;
}
include <stdio.h>
int main(void)
{
struct Rec {
char name[12];
short age;
} rs[3] = {
{"AAA", 11},
{"BBB", 22},
{"CCC", 22}
};
size_t i;
for (i = 0; i < sizeof rs/sizeof rs[0]; i++) {
printf("%s, %d\n", rs[i].name, rs[i].age);
}
getchar();
return 0;
}
结构指针指向已存在的结构数组:
include <stdio.h>
int main(void)
{
struct Rec {
char name[12];
short age;
} rs[3] = {
{"AAA", 11},
{"BBB", 22},
{"CCC", 22}
};
struct Rec *p = rs;
printf("%s, %d\n", p->name, p->age);
printf("%s, %d\n", (p+1)->name, (p+1)->age);
printf("%s, %d\n", (p+2)->name, (p+2)->age);
getchar();
return 0;
}
结构指针(单个结构):
include <stdio.h>
include <stdlib.h>
include <string.h>
int main(void)
{
struct Rec {
char name[12];
short age;
};
struct Rec *p = NULL;
p = (struct Rec *)malloc(sizeof(struct Rec));
stpcpy(p->name, "ABC");
p->age = 99;
printf("%s, %d\n", p->name, p->age);
printf("%s, %d\n", (*p).name, (*p).age);
free(p);
getchar();
return 0;
}
结构指针(多个结构):
include <stdio.h>
include <stdlib.h>
int main(void)
{
struct Rec {
int x;
int y;
} *p;
size_t i, count = 10;
p = (struct Rec *)malloc(sizeof(struct Rec)*count);
for (i = 0; i < count; i++) {
(p+i)->x = i;
(p+i)->y = i * i;
}
for (i = 0; i < count; i++) {
printf("%d, %d\n", (p+i)->x, (p+i)->y);
}
free(p);
getchar();
return 0;
}
连续的多个结构不就是结构数组了吗?(同上例)
include <stdio.h>
include <stdlib.h>
int main(void)
{
struct Rec {
int x;
int y;
} *p;
size_t i, count = 10;
p = (struct Rec *)malloc(sizeof(struct Rec)*count);
for (i = 0; i < count; i++) {
p[i].x = i;
p[i].y = i * i;
}
for (i = 0; i < count; i++) {
printf("%d, %d\n", p[i].x, p[i].y);
}
free(p);
getchar();
return 0;
}
如果文章或资源对您有帮助,欢迎打赏作者。一路走来,感谢有您!
txttool.com 说一段 esp56物联 查询128 IP查询