Example:指针的声明、赋值与使用 #include<iostream.h> using namespace std; int mainO) { int *i_pointer; /声明int型指针i pointer int i; /声明int型数i i_pointer=&i; /取i的地址赋给i_pointer i=10; cout<<"Output int i="<<i<<endl; cout<<"Output int pointer i="<<*i_pointer<<endl; return 0; 2017年4月26日12时 H0务 第6章指针 14 BACK NEXT
HOME2017年4月26日12时 15分 第6章 指针 14 #include<iostream.h> using namespace std; int main() { int *i_pointer; //声明int型指针i_pointer int i; //声明int型数i i_pointer=&i; //取i的地址赋给i_pointer i=10; cout<<"Output int i="<<i<<endl; cout<<"Output int pointer i="<<*i_pointer<<endl; return 0; }
对“&”和“*” 运算符的说明 设有:pointer_l=&a; (1)问&*pointer1的含义是什么? &和*优先级相同,但按自右至左方向结合。 因此先进行*pointer1运算,它就是变量a; 再执行&运算。 因此,&*pointer_.1与&a相同, 即变量a的地 址。 2017年4月26日12时 0务 第6章指针 BACK NEX
HOME2017年4月26日12时 15分 第6章 指针 15 设有:pointer_1=&a; (1) 问&*pointer_1的含义是什么? &和*优先级相同,但按自右至左方向结合。 因此先进行*pointer_1运算,它就是变量a; 再执行&运算。 因此,&*pointer_1与&a相同,即变量a的地 址
如果有pointer2=&*pointer_.l; 它的作用是将&a(a的地址)赋给pointer_2。 pointer 1 a pointer 1 a &a 100 &a 100 Pointer 2 b Pointer 2 b &b 10 &b 10 (a) (b) 2017年4月26日12时 H05务 第6章指针 16 BACK NEXT
HOME2017年4月26日12时 15分 第6章 指针 16 如果有pointer_2=&*pointer_1; 它的作用是将&a(a的地址)赋给pointer_2
(2)*&a的含义是什么? 先进行&a的运算,得a的地址,再进行*运算, 即&a所指向的变量,即*&a与a等价。 *&a和*pointer_I的作用是一样的。 pointer 1 a pointer 1 &a ¥&a 2017年4月26日12时 H0务 第6章指针 17 BACK NEXT
HOME2017年4月26日12时 15分 第6章 指针 17 (2) *&a的含义是什么? 先进行&a的运算,得a的地址,再进行*运算, 即&a所指向的变量,即*&a与a等价。 *&a和*pointer_1的作用是一样的
Example:空间实体的理解 #include<iostream> using namespace std; ● int mainO) { float f=34.5; int*ip reinterpret cast<int*>(&f);//int*ip =(int*)&f; cout<<"float address:"<<&<<"=>"<<f<<endl; cout<<"int address:"<<ip<<"=>"<<*ip<<endl; *ip=100; cout<<"int:"<<*ip<<endl; cout<<"float:"<<f<<endl; return 0; 2017年4月26日12时 第6章指针 18 H0务 BACK NEXT
HOME2017年4月26日12时 15分 第6章 指针 18 • #include<iostream> • using namespace std; • int main() • { • float f = 34.5; • int* ip = reinterpret_cast<int*>(&f);// int* ip = (int*)&f; • cout<<"float address: "<<&f<<"=>"<<f<<endl; • cout<<" int address: "<<ip<<"=>"<<*ip<<endl; • *ip = 100; • cout<<" int: "<<*ip<<endl; • cout<<"float: "<<f<<endl; • return 0; • }