结构体
C是一个面向过程的语言,就像一条线从上往下运行
提出问题:为啥要有结构体这个概念
想一想数组,它是一组具有相同类型的数据的集合。但在实际的编程过程中,我们往往还需要一组类型不同的数据,例如对于学生信息,姓名是字符串,学号是整数,年龄是整数,身高可能用小数,因为数据类型不同,显然不能用一个数组来存放
所以
C语言中结构体是将不同类型的数据存放在一起,作为一个整体进行处理
结构体定义
#include <stdio.h>
struct person{
int age;
char sex;//M表示male,F表示female
char name[20];
};
int main(){
struct person student1={20,'M',"小明"};
printf("%s\t%c\t%d\n",student1.name,student1.sex,student1.age);
return 0;
}
指针类型
指针是一个变量,其值为另一个变量的地址,即,内存位置的直接地址。
#include <stdio.h>
int main ()
{
int var = 20; /* 实际变量的声明 */
int *ip; /* 指针变量的声明 */
ip = &var; /* 在指针变量中存储 var 的地址 */
printf("Address of var variable: %p\n", &var );
/* 在指针变量中存储的地址 */
printf("Address stored in ip variable: %p\n", ip );
/* 使用指针访问值 */
printf("Value of *ip variable: %d\n", *ip );
return 0;
}