第7章 指针数类型.pptVIP

  • 0
  • 0
  • 约1.18万字
  • 约 74页
  • 2017-06-29 发布于贵州
  • 举报
第7章 指针数类型

第七章 指针数据类型 学习目标 理解指针的基本概念,能够熟练使用指针操作基本数据对象; 掌握指针的基本运算; 掌握指针作为函数参数时的使用方法; 理解指针与数组、指针与结构体、指针与字符串的关系; 掌握使用指针进行动态存储管理的方法。 第七章 指针数据类型 7.1 指针数据类型 7.2 指针与函数 7.3 指针与数组 7.4 指针与结构体 7.5 指针与字符串 7.6 动态存储管理 指针概述 在C语言中,用指针类型来描述内存地址,通过指针运算来实现与内存地址有关的程序功能。 使用指针增加了程序设计的灵活性,提高了程序的效率。 指针变量的概念 指针 一个变量的地址,用于间接访问变量。 指针变量 用于存放地址的变量 指针变量的赋值 赋值操作时应注意目标数据类型应符合指针类型定义 int x,*p,*p1; double y,*q; ...... p = x; //OK,p指向x。 q = y; //OK,q指向y。 p = y; //Error,类型不一致。 q = x; //Error,类型不一致。 p1 = p; //OK,p1指向p所指向的变量。 p1 = q; //Error,类型不一致。 p = 0; //OK,使得p不指向任何变量。 p = 120; //Error,120为int型。 p = (int *)120; //OK,不建议使用。 第七章 指针数据类型 7.1 指针数据类型 7.2 指针与函数 7.3 指针与数组 7.4 指针与结构体 7.5 指针与字符串 7.6 动态存储管理 第七章 指针数据类型 7.1 指针数据类型 7.2 指针与函数 7.3 指针与数组 7.4 指针与结构体 7.5 指针与字符串 7.6 动态存储管理 第七章 指针数据类型 7.1 指针数据类型 7.2 指针与函数 7.3 指针与数组 7.4 指针与结构体 7.5 指针与字符串 7.6 动态存储管理 第七章 指针数据类型 7.1 指针数据类型 7.2 指针与函数 7.3 指针与数组 7.4 指针与结构体 7.5 指针与字符串 7.6 动态存储管理 指针作为函数返回值类型 指针与函数 指针作为形参类型 指针作为返回值类型 函数的返回值类型可以是一个指针类型。例如: int *max(const int x[], int num) { int max_index=0; for (int i=1; inum; i++) if (x[i] x[max_index]) max_index = i; return x[max_index]; } void sel_sort(int x[], int n) { int i,*p,*q; for (i=n; i1; i--) { p=x[i-1]; q = max(x,i); //返回x的前i个元素中最大元素的地址,即q指向该最大元素。 //通过p,q指针交换x[j]和x[i-1]的值。 int temp = *q; *q = *p; *p = temp; } } 特别说明:不能返回函数内部定义的局部变量地址 例如: int *f() { int i=0; return i; } int main() { int *p=f(); ...... printf(“%d”, *p); //输出什么? return 0; } 指针作为函数返回值类型 指针与函数 指针作为形参类型 指针作为返回值类型 指针与数组 数组元素地址的计算 作为函数参数的指针与数组 指针与数组的可互换性 指针与数组 数组元素地址的计算 作为函数参数的指针与数组 指针与数组的可互换性 指针与数组 数组定义 int a[8] = {1, 2, 3, 4, 5, 6, 7, 8}; 数组基地址:a或 a或a[0] 数组元素地址 数组首元素地址:a[0] 数组第 i 元素地址:a[0] + i * sizeof( int ) 数组基地址与首元素地址数值相同,故 数组第 i 元素地址:a + i * sizeof( int ) 数组元素地址的计算 数组元素的地址 数组定义:int a[8] = {1, 2, 3, 4, 5, 6, 7, 8}; 指针定义:int * p; p = a[0]; // p 指向数组首元素 指针定义:int * p; p = a; // p 仍指向数组首元素 指针定义:int * q; q = a[2]; // q 指向 a[2] 指向数组元素的指针 希望表达 p、q 之间的联系 它们都指向同一数

文档评论(0)

1亿VIP精品文档

相关文档