本程序是要实现用指针作为函数参数,并自定义函数fun,在调用函数内部打印各个数组元素!
#include<stdio.h> void fun(int *p,int num) { int i; for(i=0;i<num;i++) printf("%d ",*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 ",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:Cfun.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
词典截图: