§6.1指针类型 ◆指针运算 指针变量的两个运算符:“”和“& 3—取出指针所指的变量地址中的值 取出操作数的地址 ◆指针是一种特殊的变量,指针运算一般包括 指针赋值运算和指针加减运算
§6.1 指针类型 指针运算 指针变量的两个运算符:“*”和“&” “*” ——取出指针所指的变量地址中的值 “&”——取出操作数的地址 指针是一种特殊的变量,指针运算一般包括 指针赋值运算和指针加减运算
§6.1指针类型 ◆指针赋值 例: int il, ia[ 10 int* pl, p2, p3; pl=&il;/可以用变量的地址赋值 p2=pI /何以用另一个指针赋值 p3=ia 何以用数组名赋值 p3=NULL;∥空指针,不指向任何空间
§6.1 指针类型 指针赋值 例: int i1, ia[10]; int* p1, p2, p3; p1=&i1; //可以用变量的地址赋值 p2=p1; //可以用另一个指针赋值 p3=ia; //可以用数组名赋值 p3=NULL; //空指针,不指向任何空间
§6.1指针类型 例: Int 举p45; ∥等同于45 p 等同于ji /p指向j p=189 ∥等同于=189
§6.1 指针类型 例: int i, j; int* p=&i; *p=45; //等同于i=45 j=*p; //等同于j=i p=&j; //p指向j *p=189; //等同于j=189
§6.1指针类型 ◆*3的作用(两种) 指针定义时,“*表示定义的是指针 指针运算时,“*表示指针所指向的内存 元中的值 A注:p能否作为左值与它所指向的空间能否作 为左值相关 例 例: const int x=5: Int* const intx q=&x 举p=45 q=89;
§6.1 指针类型 “*” 的作用(两种) -指针定义时, “*” 表示定义的是指针 -指针运算时, “*” 表示指针所指向的内存 单 元中的值 注:*p能否作为左值与它所指向的空间能否作 为左值相关 例:int i; 例:const int x=5; int* p=&i; const int* q=&x; *p=45; *q=89;
§6.1指针类型 ◆“&”的作用:取地址 (只能用于可以取出地址的表达式) 例 p=&45 /eror!常数没有固定地址 p=ar+3 ∥)允许,ar是数组名 p=&i+&j;/都是合法地址,但相加不一定合法 p=&i+4 ∥允许,但较危险,地址加常量不 定是地址
§6.1 指针类型 “&” 的作用:取地址 (只能用于可以取出地址的表达式) 例: p=&45; //error! 常数没有固定地址 p=ar+3; //允许,ar是数组名 p=&i+&j; //i,j都是合法地址,但相加不一定合法 p=&i+4; //允许,但较危险,地址加常量不一 定是地址