Blur主题 wordpress/怎么优化一个网站
首先:
指针是存储的变量的地址,引用是变量的别名,这个必须记住
单纯的给变量取别名没有任何的意义,作为参数传递,能保证参数传递过程中不产生任何的副本
引用可以直接操作变量,但指针的话必须通过(*p)间接的操作变量,指针可读性行比较低
//引用必须要有初始值
//int &a;
//常量必须要有初始值
//const int i;
struct Teacher{int age;char* name;
};
void getTeacher(Teacher **p){Teacher* temp = (Teacher*)malloc(sizeof(Teacher));temp->age = 20;p = &temp;
}
void getTeacher(Teacher* &p){p = (Teacher*)malloc(sizeof(Teacher));p->age = 20;
}
//指针保存的是变量的地址,引用是变量的别名
void main(){//这个t是一级指针Teacher* t;//这种调用的是第一个getTeacher(&t);//这种调用的是第二个getTeacher(t);system("pause");
}
指针常量与常量指针
void main(){//指针常量,不可以改变指针的地址,但可以改变地址的变量值int a = 1;int b = 2;int* const p1 = &a;//p1 = &b;//编译不通过,不能够改变p1的地址值,比较专一*p1 = 3;//常量指针,可以改变指针的地址,但不可以改变指针的变量值const int* p2 = &a;//*p2 = 4;//NO 编译不通过p2 = &b;system("pause");
}
可变参数
void fun(int i,...){//可变参数指针va_list args_p;//开始读取可变参数,i是最后一个固定参数va_start(args_p,i);int a = va_arg(args_p,int);int b = va_arg(args_p, int);int c = va_arg(args_p, int);printf("%d,%d,%d\n",a,b,c);//结束va_end(args_p);}void main(){fun(1,2,3,4);system("pause");
}