前10章小结幻灯片.pptVIP

  • 0
  • 0
  • 约6.64千字
  • 约 46页
  • 2017-05-25 发布于河南
  • 举报
变量的存储类别 主要分两大类:静态存储和动态存储。 具体包含四小类: 自动的(auto),静态的(static), 寄存器的(register),外部的(extern)。 主要掌握不同类型的特点(那些变量各属于什么类型?什么时候分配存储空间?什么时候释放存储空间?不同类型的变量如何赋值?不同类型的变量的有效区域多大?) 内部函数与外部函数 内部函数: 如果一个函数只能被本文件中的其他函数调用,称为内部函数。也叫静态函数。 内部函数的定义方式为: static 函数类型 函数名(形参列表) 这样定义的函数只局限于所在文件,其他文件不能使用。如果在不同的文件中有同名的内部函数,它们互补干扰。 在定义函数时前边加关键字extern,则该函数为外部函数,这样定义的函数不仅可以被本文件使用,还可以被其他文件使用。外部函数在定义时可以省略关键字extern。 其他文件调用外部函数时,需用extern加以说明 第九章 编译预处理 一、宏定义 二、文件包含 三、条件编译* 要求:能正确地进行宏替换 第十章 指针 一、指针与指针变量 二、指针变量的定义 三、一维数组与指针 四、字符串与指针 五、二维数组与指针 六、指向数组的指针和指针数组 七、指针作为函数参数 八、返回值为指针的函数和指向函数的指针 九、指向指针的指针 十、指针运算 一、指针与指针变量 指针:地址 指针变量:存放指针(地址)的变量 指向:指针变量指向所存地址对应的变量。 二、指针变量的定义 定义格式: 基类型 *变量名; 如:int *p; 三、一维数组与指针 如果有以下定义: int a[10],*p; p=a; 说出下列表示的含义: a,p,a[0], a[5],a+5,p+5, a[7],*(a+7),*(p+7),p[7]; a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] 或者: int a[10],*p=a; 四、字符串与指针 因为字符串一般存放到一维字符数组中,故指向字符串的指针可以看成是指向一维字符数组的指针 用指针指向一个字符串以后,可以用指针对字符串进行操作。 判断下列写法哪些正确,哪些错误? char s[]=“china”; char s[10]; s=“china”; char s[10]; s[10]=“china”; char *p=“china”; char *p; p=“china”; char s[10],*p; *p=“china”; char s[10],*p=s; p=“china”; 五、二维数组与指针 a[0]+0 a[0]+1 a[0]+2 a[0]+3 a[0][0] a[0][1] a[0][2] a[0][3] a[1]+0 a[1]+1 a[1]+2 a[1]+3 a[1][0] a[1][1] a[1][2] a[1][3] a[2]+0 a[2]+1 a[2]+2 a[2]+3 a[2][0] a[2][1] a[2][2] a[2][3] a a+1 a+2 a[0] a[1] a[2] 若有如下定义: int a[3][4], *p; p=a[0][0]; p=a; 五、二维数组与指针 说出下列表示的含义:设a[0][0]=2000 表示形式 含义 值 a a[0],*(a+0),*a a+1,a[1] a[1],*(a+1) a[1]+2,*(a+1)+2,a[1][2] *(a[1]+2), *(*(a+1)+2), a[1][2] 思考:a与*a,a[1]与a[1]的值相同,但他们有什么不同? 第0行首地址 第0行第0列的地址 第1行首地址 第1行第0列的地址 第1行第2列的地址 第1行第2列的元素 2000 2000 2008 2008 2012 六、指向数组的指针和指针数组 如何令一个指针指向一行? 定义 指向数组的指针变量: 定义格式:类型 (*指针名)[个数] 如:int (*p)[4]; 若有定义int a[3][4],(*p)[4]; 则可以p=a; 如果一个数组的元素都是指针变量,则这个数组称为指针数组。 定义方式:类型 *p[数组大小]; 例如:char *p[3]; 定义了一个指针数组,包含三个指针元素。 注意与指向数组的指针变量的区别。 指针数组常用于处理多个字符串。 七、指针作为函数参数 3、实参与形参的数据类型必须一致。 1、当实参为数组名时,形参可以为数组,也可以为指针变量 2、当形参为数组时,实参可以为数组名,也可

文档评论(0)

1亿VIP精品文档

相关文档