c语言数组与函数,C语言的数组与函数
数组作为函数形参
// 1. 形参是一个指针
void myfunction(int *param)
{
}
// 2. 形参是一个已定义大小的数组
void myfunction(int param[10])
{
}
// 3. 形参是一个未定义大小的数组
void myfunction(int param[])
{
}
从函数返回数组
int * myfunction()
{
}
实例
#include
#include
/* 要生成和返回随机数的函数 */
int *getrandom() {
static int r[10];
for (int i = 0; i < 10; ++i) {
r[i] = rand();
printf("r[%d] = %d\n", i, r[i]);
}
return r;
}
int main() {
int *p = getrandom(); // 指向整数的指针
for (int i = 0; i < 10; i++) {
printf("*(p + %d) : %d\n", i, *(p + i));
}
return 0;
}
r[0] = 16807
r[1] = 282475249
r[2] = 1622650073
r[3] = 984943658
r[4] = 1144108930
r[5] = 470211272
r[6] = 101027544
r[7] = 1457850878
r[8] = 1458777923
r[9] = 2007237709
*(p + 0) : 16807
*(p + 1) : 282475249
*(p + 2) : 1622650073
*(p + 3) : 984943658
*(p + 4) : 1144108930
*(p + 5) : 470211272
*(p + 6) : 101027544
*(p + 7) : 1457850878
*(p + 8) : 1458777923
*(p + 9) : 2007237709
指向数组的指针
#include
int main() {
double balance[5] = {1000.0, 2.0, 3.4, 17.0, 50.0};
double *p = balance; // balance和p指向同一块地址
printf("使用指针的数组值\n");
for (int i = 0; i < 5; i++) {
printf("*(p + %d) : %.2f\n", i, *(p + i));
}
printf("使用 balance 作为地址的数组值\n");
for (int i = 0; i < 5; i++) {
printf("*(balance + %d) : %.2f\n", i, *(balance + i));
}
return 0;
}
使用指针的数组值
*(p + 0) : 1000.00
*(p + 1) : 2.00
*(p + 2) : 3.40
*(p + 3) : 17.00
*(p + 4) : 50.00
使用 balance 作为地址的数组值
*(balance + 0) : 1000.00
*(balance + 1) : 2.00
*(balance + 2) : 3.40
*(balance + 3) : 17.00
*(balance + 4) : 50.00
c语言数组与函数,C语言的数组与函数相关推荐
- linux c语言 malloc动态分配指针,C语言malloc函数为一维,二维,三维数组分配空间...
c语言允许建立内存动态分配区域,以存放一些临时用的数据,这些数据不必在程序的声明部分定义,也不必等到函数结束时才释放,而是需要时随时开辟,不需要时随时释放,这些数据存储在堆区.可以根据需要,向系统申请 ...
- C语言学习笔记--预编译/宏定义/数组/参数传递/函数指针
目录 预编译 值传递.指针传递.引用传递 数组 typedef 函数指针 预编译 预编译又叫预处理.预编译不是编译,而是编译前的处理.这个操作是在正式编译之前由系统自动完成的.#define 和 #i ...
- 循环数组函数c语言,C语言练习题2(分支结构循环结构数组函数2009-2012二级真题)..doc...
C语言练习题2(分支结构循环结构数组函数2009-2012二级真题). C语言练习题(二) 一 选择题 1.有以下程序 #include void main() { int a: canf(" ...
- 【C 语言】一级指针 易犯错误 模型 ( 判定指针合法性 | 数组越界 | 不断修改指针变量值 | 函数中将栈内存数组返回 | 函数间接赋值形参操作 | 指针取值与自增操作 )
文章目录 一.判定指针合法性 二.数组越界 三.不断修改指针变量值 四.函数中将栈内存数组返回 五.函数间接赋值形参操作 六.指针取值与自增操作 一.判定指针合法性 判定指针合法性时 , 必须进行如下 ...
- 黑马程序员——c语言学习心得——函数传递二维数组
黑马程序员--c语言学习心得--函数传递二维数组 -------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 一.定义指针的时候一定要初始化. 变量 ...
- C语言试题三十五之找出一维整型数组元素中最大的值和它所在的下标,最大的值和它所在的下标通过形参传回。主函数中x是数组名,n 是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。
1. 题目 请编写一个函数function,它的功能是:找出一维整型数组元素中最大的值和它所在的下标,最大的值和它所在的下标通过形参传回.主函数中x是数组名,n 是x中的数据个数,max存放最大值,i ...
- 变量是否在数组内c语言,函数内创建的数组在调用后,是否就不存在
函数内创建的数组在调用后,是不是就不存在 本帖最后由 test_lockxxx 于 2014-04-23 09:31:06 编辑 第1种写法: char *getABC() { char str[10 ...
- c语言malloc用法 数组,详解C语言用malloc函数申请二维动态数组的实例
详解C语言用malloc函数申请二维动态数组的实例 C语言在程序运行中动态的申请及释放内存十分方便,一维数组的申请及释放比较简单. Sample one #include int main() { c ...
- c语言数组宏定义标识符,C语言学习笔记--预编译/宏定义/数组/参数传递/函数指针...
目录 预编译 值传递.指针传递.引用传递 数组 typedef 函数指针 预编译 预编译又叫预处理.预编译不是编译,而是编译前的处理.这个操作是在正式编译之前由系统自动完成的.#define 和 #i ...
- C语言编程>第六周 ① 编写一个录入函数:用来从键盘接收n个整型数并存放在一个整型数组中。 在主函数中调用该函数计算出这n个整数之和。
例题:编写一个录入函数:用来从键盘接收n个整型数并存放在一个整型数组中. 在主函数中调用该函数计算出这n个整数之和. 代码如下: /*代码分析:录入函数需要两个参数:一个参数是需要用来存储数字的数组, ...
最新文章
- 在Ubuntu 14.04 64bit上查看硬件配置信息
- [转]ASP.Net4.0中新增23项功能
- Android-实现切换Fragment页功能
- 成功解决mxnet.base.MXNetError: C:\Jenkins\workspace\mxnet-tag\mxnet\3rdparty\dmlc-core\src\io\local_file
- C++11之异步调用
- JAVA第一个GUI程序---计算器
- 图形学之空间坐标变化之三维图形观察及变换
- 注意力机制学习(一)——通道注意力与pytorch案例
- 原来 8 张图,就可以搞懂「零拷贝」了!
- 阿里“10”年软件测试经验,面试官通常...........
- andriod连接mysql测试_android开发 MyEclipse下测试连接MySQL数据库
- CMMI认证的周期是多久?费用是多少?
- (2)公众号开发-基础框架搭建
- oracle 停掉job,oracle 如何停job
- 利用PS抠出水印字并添加到图片
- 阿里开发手册 学习 记忆 理解 表达 融会贯通
- 漫漫软考路-考后总结
- 十分钟看懂数据库——数据库入门级语言总结
- 论文写作Word技巧
- 京东数科一面实习面经