第六章 复合数据类型
第六章 复合数据类型
第六章复合数据类型 §6.1指针类型 §6.2数组类型 §6.3字符串 §6.4指向对象的指针 §6.5指向函数的指针
第六章 复合数据类型 §6.1 指针类型 §6.2 数组类型 §6.3 字符串 §6.4 指向对象的指针 §6.5 指向函数的指针
§6.1指针类型 指针概念 指针的定义 指针运算 ·引用类型
§6.1 指针类型 • 指针概念 • 指针的定义 • 指针运算 • 引用类型
§6.1指针类型 指针概念 ◆指针:是一种数据类型 指针变量:具有指针类型的变量 八·指针变量的值:某变量的地址值 ◆指针变量的类型:它所指向的变量的类型 指针可以指向任何数据类型,可以指向数组、指 向函数、指向文件、指向指针(多级指针)
§6.1 指针类型 指针概念 指针:是一种数据类型 指针变量:具有指针类型的变量 指针变量的值:某变量的地址值 指针变量的类型:它所指向的变量的类型 指针可以指向任何数据类型,可以指向数组、指 向函数、指向文件、指向指针(多级指针)
§6.1指针类型 如 内存内存地址 int age=20 324848 int米ptI pl r age 20 ptr=&age ptr324848365626
§6.1 指针类型 如: int age=20; int* ptr; ptr=&age; 内存 内存地址 20 324848 324848 age ptr …… …… …… 365626
§6.1指针类型 ◆指针本身也是一个变量 指针变量 的值可以 改变 ptr& 1234 12382df4(2df8) ptr=2df4 ◆ptr=&yj 123c ptr=2df8 dfo 2df4 156 i=156 2df8 99 99
§6.1 指针类型 指针本身也是一个变量 ptr=&i; ptr=&j; 2df4(2df8) 156 99 1234 1238 123c 2df0 2df4 2df8 …… i=156 j=99 ptr=2df4 ptr=2df8 指针变量 的值可以 改变
§6.1指针类型 ◆指针的定义 必须“先声明,后使用 Int Ip: ∥定义一个指向整型数的指针ip foat*fp;/定义一个指向浮点数的指针印 chart cp ∥定义一个指向字符型的指针cp int*(ipa)[10];/指向整型数组的指针 Int* Ipp ∥指向指针的指针
§6.1 指针类型 指针的定义 必须“先声明,后使用” int* ip; //定义一个指向整型数的指针ip float* fp; //定义一个指向浮点数的指针fp char* cp; //定义一个指向字符型的指针cp int* (ipa)[10]; //指向整型数组的指针 int** ipp; //指向指针的指针
§6.1指针类型 ◆指针定义方法 在类型名后或指针变量名前加“*” ◆如:定义一个指针变量i(可用以下格式) Int ip int*ip,∥在一条语句中定义的多个变量都 必须是指针
§6.1 指针类型 指针定义方法 在类型名后或指针变量名前加“*” 如:定义一个指针变量ip(可用以下格式) int *ip; int* ip; //在一条语句中定义的多个变量都 必须是指针
§6.1指针类型 ◆指针本身只有一种 各种类型指针变量的内存长度一样 Y8(32位机,占4个字节) ◆可以用 size()函数进行测试: Bp: sizeof(int*== sizeof( float*) sizeof( char==sizeof( char**)
§6.1 指针类型 指针本身只有一种 各种类型指针变量的内存长度一样 (32位机,占4个字节) 可以用sizeof( )函数进行测试: 即: sizeof(int*)== sizeof( float*) == sizeof( char*)== sizeof( char**) == ……
§6.1指针类型 ◆指针的初始化(可在指针定义时初始化) 例 int il. i2 int ia[ 10 int* pl=&il /用变量的地址初始化指针 Int p2=pl /)另一个指针初始化指针 int* p3=ia; 用数组名初始化指针
§6.1 指针类型 指针的初始化(可在指针定义时初始化) 例: int i1, i2; int ia[10]; int* p1=&i1; //用变量的地址初始化指针 int* p2=p1; //用另一个指针初始化指针 int* p3=ia; //用数组名初始化指针