文档详情

指针数组与指针函数.pptx

发布:2017-06-04约3.2千字共62页下载文档
文本预览下载声明
全国计算机二级C语言培训;1 指针定义、初始化 2 指针变量的操作 3 指针变量作函数参数 4 字符指针与多级指针 5 指针和数组 6 指针与函数 ;指针变量定义;取地址运算符;间接运算符;6; 数据类型 *指针名=初始地址值;;例 main( ) { int i=10; int *p; *p=i; printf(“%d”,*p); };1 指针定义、初始化 2 指针变量的操作 3 指针变量作函数参数 4 字符指针与多级指针 5 指针和数组 6 指针与函数 ;指针的加减运算是以其指向的类型的字长为单位的; 指针变量的操作—指针移动; 指针变量的操作—指针移动;表示物理地址之间的大小关系,值为1或0, 只有指向同一种数据类型的两个指针才能进行关系运算。 ;#include stdio.h void main( ) { int a=3,b=5; int *p= a; printf(%d\n,*p); *p=4; p=b; printf(%d\n,*p); *p=6; printf(a=%d,b=%d\n,a,b); };【2010.9】;1 指针定义、初始化 2 指针变量的操作 3 指针变量作函数参数 4 字符指针与多级指针 5 指针和数组 6 指针与函数 ;指针变量作为函数参数;指针变量作为函数参数;调用swap函数初始时;有没有方法使函数中改变的值能被主调函数所用?;;C语言程序设计;C语言程序设计;【2011.3】;;#includestdio.h 【2010.9】第29题 void f(int *p); main() { int a[5]={1,2,3,4,5},*r=a; f(r); printf(%d\n,*r); } void f(int *p) { p=p+3; printf(%d,,*p); } 程序运行后的输出结果是 A)1,4  B)4,4  C)3,1  D)4,1;1 指针定义、初始化 2 指针变量的操作 3 指针变量作函数参数 4 字符指针与多级指针 5 指针和数组 6 指针与函数 ;字符指针;指针指向字符串;字符指针p所指对象;例:字符串常量的输出 ;历年真题;多级指针;1 指针定义、初始化 2 指针变量的操作 3 指针变量作函数参数 4 字符指针与多级指针 5 指针和数组 6 指针与函数 ;1 数组就是连续存放的若干元素的集合。 2 数组名就是指向数组第一个元素的首地址(指针) 如 int a[10],*p;则p=a等价于p=a[0]; 3 某一元素的地址: p=a[ i ], 则用指针引用该元素为:*p=a[ i ]; 4 :设 int a[10],*p=a; 则有: p+i==a[i]; *(p+i)==*( a[i] )= a[i]; ; 假设有定义float a[10], *p = a; 则如下的等价关系成立: (1) p = a = a[0] (2) p+i = a[i] (3) *(p+i) = *(a+i) = a[i] (4) 指针可以作数组名用,即:p[i]=a[i];分析以下语句的执行结果! int a[5]={10,20,30,40}, y1,y2,y3,y4, *p; p=a[0]; y1=*p++; y2=*++p; y3=(*p)++; y4=++(*p);;#include stdio.h main() { int i,a[5],*p=a; printf(请输入5个数据:); for(i=0;i5;i++) scanf(%d,a[i]); printf(数组a的5个数据是:\n); for(i=0;i5;i++) printf(%4d,a[i]); printf(\n); };以下程序的输出结果是 #include stdio.h main() { int j,a[8]={1,3,5,7,9,11,13,15},*p=a+5; for(j=3;j;j--) { switch(j) { case 1: case 2:printf(%d,*p++);break; case 3:printf(%d,*(--p)); } } } ;指针数组;使用指针指向字符串: char *p[]={FORTRAN,
显示全部
相似文档