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

第三次作业

//定义一个包含有10个整数的数组a并初始化,定义一个指针变量p,p指向数组a,定义函数fun,要求在fun内部访问数组,并打印出数组中各元素的值,要求在fun函数内不要出现数字10.


#include<stdio.h> int arr[10] = {0}; int length=sizeof(arr)/sizeof(arr[0]);//数组占内存总空间,除以单个元素占内存空间大小 int main(void) { void fun(int a[]); fun(arr[10]); return 0; } void fun(int a[]) { int b,* p = arr; for(b = 0;b<length;b++) { printf("%d\n",*p); p++; } }

码云gitosc账号  allams

技术分享

----------------------------------------------------

题目

  • a.定义一个包含有10个整数的数组a并初始化,定义一个指针变量p,p指向数组a,定义函数fun,要求在fun内部访问数组,并打印出数组中各元素的值,要求在fun函数内不要出现数字10.
  • b.函数里面不能出现10,于是想到了定义一个全局变量s = 10,然后再把s放在fun里面用,但怕被老师扣完作业分,只好去网上找有没有类似java里面数组的.length,结果没,C里面得用sizeof()巧妙的弄出数组长度
  • int length=sizeof(arr)/sizeof(arr[0]);//数组占内存总空间,除以单个元素占内存空间大小

    而且不能定义在fun函数里,因为函数内数组是没有定义长度的参数,所以在里面定义只能得到数组长度为1

  • c.运行结果
  • 0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    
    --------------------------------
    Process exited after 0.118 seconds with return value 0
    请按任意键继续. . .

     

  • d.结论:知道了很久以前就想知道的C语言怎样获取数组长度,还弄一了个很麻烦的虽然不知道有什么用但感觉很高级的gitosc,只能说,又长知识了

第三次作业