指针高级应用
- 指针的指针:用于存放指针变量的地址
type **name; - 函数指针与指针函数
函数指针:int *f(int x);
指针函数: int (*p)();
区别:函数指针本质是一个指针;指针函数本质是一个函数,返回值是一个地址。 - 无类型指针
定义: void *p;
可以将任意类型的指针赋给无类型指针,但不能将无类型指针赋给其他类型指针,如若要赋值必须进行强转。 - const限定符
指向常量数据的指针:const int *p;
常指针:int * const p;
两者区别:常指针的值不可以修改,但指向的内容可修改;指向常量数据的指针,其值可以修改,但指向的内容不可修改。
指针实现结构体中数据的增删改
结构体定义
typedef struct staff
{
char username[20];
char password[20];
char role[20];
int flag;
}STAFF_T;
STAFF_T staffs[50] = {
{"admin" ,"123456","admin"},
{"manage" ,"123456","manage"},
{"waiter" ,"123456","waiter"}
};
添加用户
void Staff_Add( STAFF_T *people)//用户添加
{
STAFF_T newple;
char name[20];