定义指针变量的一般形式为 基类型*指针变量名; float *pointer_3; ∥pointer3是指向单精度型数据的指针变量 char *pointer 4; ∥pointer4是指向字符型数据的指针变量 注意:“*”不是指针变量名的一部分。 将被指向的变量的地址赋给指针变量,即可使一个 指针变量指向另一个变量。例如: pointer 1=&i; /将变量的地址存放到指针变量pointer1中 pointer_1=&j; /将变量j的地址存放到指针变量pointer 1中 2017年4月26日12时 H0务 第6章指针 BACK NEX
HOME2017年4月26日12时 15分 第6章 指针 9 定义指针变量的一般形式为 基类型 *指针变量名; float *pointer_3; // pointer_3是指向单精度型数据的指针变量 char *pointer_4; // pointer_4是指向字符型数据的指针变量 注意: “*”不是指针变量名的一部分。 将被指向的变量的地址赋给指针变量,即可使一个 指针变量指向另一个变量。例如: pointer_1=&i; //将变量i的地址存放到指针变量pointer_1中 pointer_1=&j; //将变量j的地址存放到指针变量pointer_1中
Initialization of pointer variable Syntax Form 存储类型 数据类型*指针名=初始地址; For example: int *pa=&a; Note: 1)指针必须初始化,不能用一个整数给一个指针变量赋初值。 但可以赋值为整数0,表示空指针。 (2)在定义指针变量时必须指定基类型 。 3)用变量地址作为初值时,该变量必须在指针初始化之前已 说明过,且变量类型应与指针类型一致。 (4)可以用一个已赋初值的指针去初始化另一个指针变量。 (⑤)不要用一个内部auto型变量去初始化static型指针。 2017年4月26日12时 第6章指针 BACK NEXT
HOME2017年4月26日12时 15分 第6章 指针 10 • Syntax Form • 存储类型 数据类型 *指针名=初始地址; • For example: int *pa=&a; • Note: • (1)指针必须初始化,不能用一个整数给一个指针变量赋初值。 但可以赋值为整数0,表示空指针。 • (2) 在定义指针变量时必须指定基类型。 • (3)用变量地址作为初值时,该变量必须在指针初始化之前已 说明过,且变量类型应与指针类型一致。 • (4)可以用一个已赋初值的指针去初始化另一 个指针变量。 • (5)不要用一个内部 auto 型变量去初始化 static 型指针
一 般的C++编译系统为每一个指针变量分配4个字节 的存储单元,用来存放变量的地址。 64位CPU可以支持更大的内存寻址空间。它打破了 32位下4GB内存的限制,理论上内存访问空间可以 达到1600万(16777216)TB。 实际上采用EM64T技术的Intel处理器支持36位物理 内存寻址和48位虚拟内存寻址; AMD64位处理器支持40位物理内存寻址和48位虚拟 内存寻址: Vindows XP x64版最高可以支持16GB物理内存和 16TB虚拟内存(Vista128G,Windows7192G),使 得应用程序可以快速处理大量数据集合。 2017年4月26日12时 第6章指针 NE
HOME2017年4月26日12时 15分 第6章 指针 11 • 一般的C++编译系统为每一个指针变量分配4个字节 的存储单元,用来存放变量的地址。 • 64位CPU可以支持更大的内存寻址空间。它打破了 32位下4GB内存的限制,理论上内存访问空间可以 达到1600万(16777216)TB。 • 实际上采用EM64T技术的Intel处理器支持36位物理 内存寻址和48位虚拟内存寻址; • AMD 64位处理器支持40位物理内存寻址和48位虚拟 内存寻址; • Windows XP x64版最高可以支持16GB物理内存和 16TB虚拟内存(Vista 128G,Windows 7 192G),使 得应用程序可以快速处理大量数据集合
一些符号的读法 &: address of,and,取地址 dereference,星,取数据,乘 取反 # 异或 ‖逻辑或(或) &&并,与 @英文中原意是A-Tail带尾巴的a”,缩写就 是AT:爱特(AT),常用来表示“在”。 2017年4月26日12时 H0务 第6章指针 BACK NEXT
HOME2017年4月26日12时 15分 第6章 指针 12 • &: address of ,and ,取地址 *: dereference,星,取数据,乘 • ~ 取反 # 井 ^ 异或 | 位或 || 逻辑或(或) && 并,与 • @ 英文中原意是A-Tail“带尾巴的a” ,缩写就 是AT :爱特(AT),常用来表示“在”
例6.1通过指针变量访问整型变量 #include <iostream> using namespace std; int main() { int a,b; /定义整型变量a,b int *pointer_1,*pointer_2; /定义指针变量 a=100;b=10; 1/对a,b赋值 pointer_1=&a; /把变量a的地址赋给pointer_1 pointer 2=&b; /把变量a的地址赋给pointer2 cout<<a<<""<<b<<endl; /输出a和b的值 cout<<*pointer_1<<""<<*pointer_2<<endl; /输出*pointer 1和*pointer2的值 return 0; 2017年4月26日12时 H0务 第6章指针 13 BACK NEXT
HOME2017年4月26日12时 15分 第6章 指针 13 #include <iostream> using namespace std; int main( ) { int a,b; //定义整型变量a,b int *pointer_1, *pointer_2; //定义指针变量 a=100;b=10; //对a,b赋值 pointer_1=&a; //把变量a的地址赋给pointer_1 pointer_2=&b; //把变量a的地址赋给pointer_2 cout<<a<<" "<<b<<endl; //输出a和b的值 cout<<*pointer_1<<" "<<*pointer_2<<endl; //输出*pointer_1和*pointer_2的值 return 0; }