指针:
——间接运算符(提取指针变量中的地址对应的值)用法:数据=指针变量名
&——地址运算符(提取变量的地址)用法:地址=&变量名
指针变量的定义声明:
char * x;(x是指向一个字符变量的指针)
int * x;(x是指向一个整数变量的指针)
float * x;(x是指向一个浮点型变量的指针)
…
(简介运算符()的左右有空格是程序员在定义声明指针变量时的习惯,分别区分是变量声明)
/*****************************************************************************************************/
结构体:
struct——结构体关键词
.——结构成员运算浮点
->——分量运算符
p->m==(*p).m
结构体的定义声明:
struct xxx
{
char a;
int b;
float c;
double d;
…
};
结构体的使用:
struct xxx aaa;//声明一个struct xxx变量,变量名为aaa
struct xxx *bb;//bb是指向一个struct xxx变量的指针
bb=&aaa;
aaa.a=‘f’;
aaa.b=10;
aaa.c=2.5;
aaa.d=5.2;
bb->a=‘f’;
bb->b=10;
bb->c=2.5;
bb->d=5.2;
…
作用:可以形容为自己创建一个数据类型
能够同时存在不同数据类型的数据(方便管理和调用;
能够采用指针调用的方式;
/******************************************************************************************************/
共用体(又称联合体):
union——共用体关键词
共用体的定义声明:
union xxx
{
char a;
int b;
float c;
double d;
};
共用体的使用:
union xxx aa;//声明一个共用体变量,变量名为aa
aa.a=‘f’;
aa.b=10;
aa.c=9.1;
aa.d=0.9;
…
作用:
1.共用体的存储空间为其中最大的数据类型空间;
2.使用共用体中的变量,使用一个,原来定义的数据会被清空;
3.联合的数据是存储在同一个空间但同一时间只能存储一种数据,每一次赋值会导致原来的数据被清空;
/******************************************************************************************************/
枚举类型:
enum——枚举类型(关键字)
枚举变量的定义声明:
enum xxx{a,b,c,d,e,f};
enum xxx book;
book=a;//给枚举变量赋值必须是枚举变量中的数据(a,b,c,d,e,f)
…
作用:
1.枚举类型中定义的成员都是整数类型的数据
2.成员的数据值是按顺序依次递加的
3.在变量的定义中,能够给与成员赋予初值,以后也可依次递加
4.给声明的枚举变量赋值必须是枚举变量中的数据(a,b,c,d,e,f)
/******************************************************************************************************/
typedef:
typedef的使用:
typedef unsigned char u8;
(与#define类似但不同,#define size 8)
typedef主要用于简化数据类型名称,别名;
(注意typedef与#define的区别就行)
/*********************************************(将字符串直接变为整型数据) *********************************************************/
#include <stdio.h>
#include <string.h>
int main(void)
{
int a,b,c;
sscanf(“2019,12.01”, “%d,%d.%d”, &a,&b,&c); //取需要的字符串 (将字符串直接变为整型数据)
printf(“a=%d,b=%d,c=%d”,a,b,c); // a=2015,b=4,c=5
}