首页 > 代码库 > 第三次作业

第三次作业

本程序是要实现用指针作为函数参数,并自定义函数fun,在调用函数内部打印各个数组元素!

#include<stdio.h>
void fun(int *p,int num)
{
    int i;
    for(i=0;i<num;i++)
    printf("%d\n",*p+i);
}
int main()
{
    int a[10]={1,2,3,4,5,6,7,8,9,10};
    int *p,num;
    p=a;
    num=sizeof(a)/4;
    printf("数组元素个数:%d\n",num);
    fun(p,num);
    return 0;
 } 

数组元素个数:10
1 2 3 4 5 6 7 8 9 10
--------------------------------
Process exited after 0.2169 seconds with return value 0
请按任意键继续. . 

出现的问题及解决方法:

1. 出现了这个错误提示:12 3 D:\C\fun.c [Warning] assignment from incompatible pointer type上网查了意思:类型转换错误!)

我就开始说编译器不好,因为之前总是出问题,让同学看了下,说看看出错的地方,才发现确实是自己错了,我竟然写p=&a,因为a本身就代表数组首地址,所以直接p=a就可以了!

2.我记得strlen可以计算字符串长度,而我需要计算整形数组元素的个数,我记得有一个sizeof函数可以计算长度,但是忘记计算什么长度了,我便尝试计算数组a的长度,然后用printf函数输出,结果是40,我就知道它是计算数据所占字节数,因为一个int型数据占4个字节,所以num=sizeof(a)/4便是数组元素的个数!

总结:代码出现错误一定要仔细分析,不要大意!在这个程序编程中我在一个语句结束没有写;结果编译错误,不过我看到了,所以及时修改了!养成一个好的敲代码的习惯很重要的!

 

码云账号:1348527097@qq.com

词典截图:

技术分享

 

第三次作业