C++引用语法
初级使用
#include <stdio.h>void modify_num(int& b){++b;}int main(){int a = 10;modify_num(a);printf("a=%d\n", a); // a=11return 0;}
指针的引用
记住一点:& 始终紧贴变量
#include <stdio.h>#include <stdlib.h>void modify_num(int& b){++b;}// 使用引用就可以抛弃二级指针了// & 始终紧贴变量void modify_pointer(int*& p){p = (int*)malloc(20);p[0] = 5;}int main(){int* p = NULL;modify_pointer(p);printf("p[0]=%d\n", p[0]); // p[0]=5return 0;}
结构体指针
#include <stdio.h>typedef struct student {int num;char name[20];char sex;} STU;int main(){STU s = { 1001, "yyy", 'M' };STU* p = &s;printf("%d %s %c\n", (*p).num, (*p).name, (*p).sex); // 注意“成员运算符”的优先级最高printf("%d %s %c\n", p->num, p->name, p->sex); // 指针的成员选择return 0;}
#include <stdio.h>typedef struct student {int num;char name[20];char sex;} STU;int main(){STU sArr[3] = { 1001, "lilei", 'M', 1005, "zhangsan", 'M', 1007, "lili", 'F' };STU* p = sArr;int num;num = p->num++;printf("num=%d, p->num=%d\n", num, p->num); // num=1001, p->num=1002num = p++->num;printf("num=%d, p->num=%d\n", num, p->num); // num=1002, p->num=1005return 0;}
