指针数组与指针函数.pptx
文本预览下载声明
全国计算机二级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,
显示全部