C语言-函数、数组、指针



-函数
    格式:声明输出变量类型 函数命名(参数){函数代码}  
    example:int sum(int a,int b){
                     int c=a+b;
                     return c;
                     }
    使用时直接打函数名 如:int num=sum(10,20);
    其中sum就是一个求和函数,上述代码表示求10与20的和用int类型的变量num接收函数结果, 打印后可得num=30;同样我们可以按照上述函数构造格式自己定义需要的函数如求差求乘积函数等甚至很多复杂函数(函数库)
函数可以将相对独立的某个功能提取出来这样可以在其他程序中多次重复使用 即函数的封装

-形参和实参
    上面函数中 a、b都是int类型的形式参数,10、20是实际参数,形参实参之间仅是值的传递,将10传递给a、将20传递给b,于是函数中a+b才能得到实际数据结果c也是形式参数

-数组
    格式:元素类型 数组名称[数组长度];
    example:int a[10];
    下标从0开始,直到长度-1;字符数组需要 \0 作为结束符号,因此需要多一个长度。利用下标访问数组中的元素,数组绝不能越界 所以在写入数组时需添加安全判断避免出现数组越界情况,一旦创建则不能更改大小
    数组是一段有序的数据容器 在内存中是一段连续的内存(指针偏移),数组中只能存放一种类型的元素注:字符串就是用字符数组存储的
    数组的遍历一般是利用for循环 对数组中元素一一访问遍历: for(int i=0, i < array.length, i++
    length = sizeof(array)/sizeof(array[0]); 这样当数组的元素类型改变时 不需要改变其求数组长度的代码
    数组本身不能赋值 若要将一个数组赋值给另一个数组只能采取遍历的方法,数组作为函数参数时往往必须用另一个参数代表该数组的大小并传入,不能在传入的数组的[]中给出数组的大小
    字符串是字符数组 char[4] 代表四个字符的字符串

-指针
    取地址符&取得的既是该变量在内存空间中的地址,指针就是保存地址的变量
    int *p = &i;  这段代码表示的就是取出变量i的地址并赋予变量p,若有 i = 24; 则可得 *p == 24;  普通变量的值就是实际的值:i == 24;而指针变量的值是具有实际量的变量的地址 虽然有 *p == i == 24; 但p是一个十六位进制的数字,表示内存空间的地址 
    在函数中有形参和实参的问题 直接对其数据进行操作有很多不便之处,比如若要写一个函数并传入两个参数 该函数实现交换传入的两个参数的值这一功能 由于在函数中两个参数都是形参 直接交换它们俩的值对函数外的main函数中需要交换值的两个参数没有任何影响,即该函数没有达到我们预想的效果。此时若用指针在该函数内直接在内存空间上对需要交换值的变量进行操作,结果通过指针返回,即可解决上述问题。
    符号 * 是一个单目运算符 用来反问指针的值所表示的地址上的变量
-指针与数组的关系:
    函数参数表中的数组实际上就是指针 数组变量是特殊的指针 数组变量本身就表示地址所以取数组的地址时不需要使用取地址符&  eg: int a[10];  int*p = a; 但数组元素表示的是变量 取地址时需要使用取地址符&  
eg: int*p = &a[0];  实际上由于数组就是一种指针 所以对于数组有这样的关系:a == &a[0];    p[0] == a[0];  
    上述的数组介绍中 数组在内存中是一段连续的内存 指针是指向内存的变量所以就有了指针偏移的问题,指针的偏移会导致指针指向的内存随之偏移 而数组是一段连续的内存 所以只需获取指针的偏移量我们仍可以得到偏移后指针指向数组中哪个元素。简单介绍:
    int array[4] = (11,22,33,44);  int *p = array;  则有:*p == array[0];  p[0] == array[0] == 11;
    指针偏移:p[3] = array[3] == 44;  int *q = &array[2];  q[-1] = array[1] == 22; 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值