&:后跟一个变量名时,&给出该变量得地址
*:后跟一个指针名或地址时,*给出储存在指针指向地址上的值。
ptr = &pooh; // 把pooh的地址赋给ptr
ptr = &bah; //间接运算符*找出存储在bah中的值
val = *ptr; //间接运算符*找出ptr指向得值
int *pi; //pi是指向int类型变量得指针
被调函数一般不会改变主调函数中的变量,如果要改变,应使用指针作为参数。
数组初始化:
int arr[6] = {0,0,0,0,0,212};
int arr[6] = {[5] = 212};//C99规定中可如此指明
int n=5;
int m=8;
float a9[m];//C99之前不允许
float a8[n];//C99之前不允许
指针加1,指针得值递增它所指向类型的大小(以字节为单位)
*(dates + 2)//dates第三个元素得值
*dates+2 //dates第一个元素得值加2
int urn[5] = {100,200,300};
int *ptr = urn; // 数组 亦第一个元素地址
double * const pc = rates;//pc指向数组的开始
pc = &rates【2】;不允许,
*pc = 921.1;//允许 数组第一个元素被修改为921.1
const double * const pc = rates;//该指针既不能更改它指向的地址,也不能修改指向地址上的值