当前位置:网站首页>C语言实验十二 指针(二)
C语言实验十二 指针(二)
2022-08-03 02:12:00 【Meteor.792】
一、实验目的
(一)进一步理解指针的概念,掌握其在数组和字符串中的应用。
(二)学会使用函数的指针和指向函数的指针变量。
(三)了解指向指针的指针的概念及其使用方法。
二、预习要求
(一)字符、字符串和字符数组的关系与表示方法;
(二)函数指针;
三、实验内容
1、有如下程序段:
int a=10,b=1,*p; /*此处的*表示定义指针变量,而非间接运算符*/
p=&a;
a=*p+b; /*此处的*表示间接运算符*/
执行该程序段后,a的值为 11 。
#include "stdio.h"
void main()
{
int a=10,b=1,*p;
p=&a;
a=*p+b;
printf("a的值为:%d",a);
}2、写出下列程序的运行结果:
main()
{ int a[]={1,2,3};
int *p,k;
p=a; /*将数组a的首地址送给指针变量p*/
for(k=0;k<3;k++)
printf(“%d,%d,%d,%d\n”,a[k],p[k],*(p+k),*(a+k));
}
注:通过该题,希望学生掌握数组元素与指向数组的指针的不同。a[k]表示数组中下标为k的元素。a[k]、p[k]、*(p+k)、*(a+k)都表示a[k];前两种是下标表示法,后两种是指针表示法。而a+k表示数组中第k个元素的地址。
#include "stdio.h"
void main()
{
int a[3]={1,2,3};
int *p,k;
p=a;
for(k=0;k<3;k++)
printf("%d %d %d %d\n",a[k],p[k],*(p+k),*(a+k));
}3、以下程序是用指针变量输出a数组中的10个元素。
#include "stdio.h"
void main()
{
int a[10];
int *p,k;
p=a;
printf("请输入十个数值:");
for(k=0;k<10;k++)
scanf("%d",p++);
p=a;
for(k=0;k<10;k++,p++)
printf("%d ",*p);
printf("\n");
} 4.下面程序的功能是输出a数组中的10个元素。
#include "stdio.h"
void main()
{
int a[10];
int *p,k;
p=a;
for(k=0;k<10;k++)
{
*p=k;
p++;
}
p=a;
for(k=0;k<10;k++,p++)
printf("%d ",*p);
}5、编写程序实现如下功能:通过键盘,用指针输入10个元素的值,再通过指针计算各元素的平均值,输出平均值。
#include "stdio.h"
void main()
{
int as(int *p,int n);
int a[10]={0,1,2,3,4,5,6,7,8,9};
as(a,10);
}
int as(int *p,int n)
{
float i,aver,sum=0;
for(i=0;i<10;i++,p++)
{
sum=sum+*p;
}
aver=sum/10;
printf("输出平均值为:%f",aver);
}四、实验注意事项
注意数组的指针与数据元素值之间的关系。
边栏推荐
猜你喜欢
随机推荐
Get the first/last day of the current week, month, quarter in MySQL
Rust Web(三)—— 通过sqlx连接数据库(MySQL)
C语言——结构体(声明、内存对齐、自引用)、位段、联合体、枚举常量合集
Useful Monitoring Scripts What you want part1 in Oracle
SPI机制是什么?
容联云发送验证码
leetcode:163 缺失的区间
kubernetes部署ldap
一些面试的总结
LabVIEW程序框图保存为图像
南瓜科学新品上线 开辟益智玩具新世界
ClickHouse常用函数速查大全
# RACE32——高级断点的设置和应用
通过kubernetes可视化界面(rancher)安装kibana
leetcode:152. 乘积最大子数组
[Example构造方法增加notNull参数,默认false,允许值为null,值为null的时候不加入到条件中
Kubernetes:(八)调度约束和故障排查
【云原生】灰度发布、蓝绿发布、滚动发布、灰度发布解释
ClickHouse数据类型
【Arduino】重生之Arduino 学僧(2)----Arduino语言









