文档详情

[工学]c语言程序设计 谭浩强第08章.ppt

发布:2018-03-02约7.45千字共38页下载文档
文本预览下载声明
制作:郑超美 第八章 指针 §8.1 指针概述 §8.2 指针的概念 §8.3 指针与变量 §8.4 指针运算 §8.5 指针与数组 §8.6 指针与字符数组 §8.7 指针与字符串 §8.8 指针与函数参数 §10.1 地址和指针的概念 §10.2 变量的指针和指向变量的指针变量 10.2.1 指针变量的定义 10.2.2 指针变量的引用 10.2.3 变量的指针作函数参数 §10.3 数组的指针和 指向数组的指针变量 10.3.1 指向数组元素的指针 10.3.2 通过指针引用数组元素 10.3.3 数组名作函数参数 10.4.1 字符串的表示形式 10.4.2 字符指针作函数的参数 10.4.3 对使用字符指针变量和字符数组的讨论 例 求一维数组各元素的平均值 main( ) { float average(int *q , int n ) , aver; int a[10]={1,2,3,4,5,6,7,8,9,10}, *p=a ; aver=average( p,10); printf(average=%8.2f\n, aver); } float average(int *q , int n) { int i; float aver, sum=0.0; for(i=0; in; i++,q++) sum=sum+(*q); aver=sum/n; return (aver);} 注意:用指针变量做实参,必须先使实参指针变量指向一个已定义的数组(指向数组的首元素或其它的元素)。 用字符数组存放一个字符串 #include “stdio.h” main( ) { char a[ ]=Good morning!; puts(a); } §10.4 字符串的指针 用字符指针指向一个字符串 #include “stdio.h” main( ) { char * a = Good morning!; printf(%s”, a); } #include “stdio.h” main( ) { char * a ; a= Good morning!; printf(%s”, a); } 例10.19 将字符串a(包括‘\0’)复制到字符数组b中 程序演示 main( ) { static char a[ ]=football match; char b[20] , *p, *q; int i; p=a; q=b; for( ; *p!=\0 ; p++, q++) *q=*p; *q=\0; printf(string a is: %s\n, a ); printf(string b is: ); for( i=0; b[i]!=\0; i++) printf(%c, b[i]); printf(\n); } 指向字符数据 的指针变量 L10_19 例10.20 用函数调用实现字符串的复制。 main( ) { void copy_str(char *s , char * t ); char *a=Good morning!; char *b=How do you do; printf( string_a=%s\n string_b=%s\n, a,b); copy_str( b,a ); printf(\n string_a=%s\n string_b=%s\n, a, b ); } void copy_str(char *s, char *t) { for( ;*t != \0;s++, t++ ) *s=*t; *s=\0; } 程序演示 Good morning! Good morning! Good morning! How do you do * * 字节( byte ) 内存区中最基本的存储单元(存放一个八位二进制串,即 8bit)。 如:内存容量为 128 MB 共有 1
显示全部
相似文档