【编程语言 · C语言 · 函数和数组】

news/2025/1/16 5:30:20/

具有数组参数的函数

数组不能通过值传递给函数。但是,数组名是一个指针,因此仅将数组名传递给函数就是将指针传递给数组。

例如:

int add_up (int *a, int num_elements);int main() {int orders[5] = {100, 220, 37, 16, 98};printf("Total orders is %d\n", add_up(orders, 5)); return 0;
}int add_up (int *a, int num_elements) {int total = 0;int k;for (k = 0; k < num_elements; k++) {total += a[k];}return (total);
}

输出: "Total orders is 471"

【选词填空】声明函数foo(),该函数使用指针数组参数并返回整数。

 foo(int arr);

*

&

int

float

返回数组的函数

正如可以将指向数组的指针传递给函数一样,可以返回指向数组的指针,如以下程序所示:

int * get_evens();int main() {int *a;int k;a = get_evens(); /* get first 5 even numbers */for (k = 0; k < 5; k++)printf("%d\n", a[k]); return 0;
}int * get_evens() {static int nums[5];int k;int even = 0;for (k = 0; k < 5; k++) {nums[k] = even += 2;}return (nums);
}

请注意,声明了一个指针(而不是数组)来存储该函数返回的值。

还要注意,当从函数传递局部变量时,需要在函数中将其声明为静态变量。

请记住,a[k] 与 *(a + k)相同。

【选词填空】声明一个返回int数组的函数。

int  getArray();

$

&

*

%

【填空题】声明一个带有两个整数参数并返回浮点值(单精度)的函数。

 my_func(int a,  b);

【选词填空】定义递归打印功能,该功能可打印从n到0的数字。

void print(int n) {
  if (n < 0) ;
  printf("%d", n);
  (n - 1);
}

back

print

return

printf

【选词填空】打印数组的元素。

int arr[] = {1, 2, 3, 4, 5};
 (int x = 0; x < 5; x++) {
  printf("%d", [x]);
}

arr

if

for

x

【选词填空】声明一个指向num变量的指针,并通过该指针将其值加倍。

int num = 42;
int  *ptr = num;
ptr *= 2;

&

!

*

$

【选词填空】声明swap函数,该函数需要两个整数指针并交换它们所指向的值。

void swap( a, int* b) {
  int temp = *a;
  *a = *b;
  b = temp;
}

*int

int*

++

*

【填空题】该代码的输出是什么?

int * test() {
static int x[4];
for(int i=0;i<4;i++){
x[i] = i%2;
}
return x;
}

int main() {
int * arr = test();
printf("%d", *(arr+3));
}


http://www.ppmy.cn/news/489119.html

相关文章

GC相关的

1、判断对象是否为垃圾的算法 引用计数算法可达性分析算法 引用计数算法 判断的标准&#xff1a; 通过判断对象的引用数量来决定对象是否可以被回收。 每个对象实例都有一个引用计数器&#xff0c;被引用则1&#xff0c;完成引用则-1。 任何引用计数为0的对象实例可以被当…

CEI Harpoon v1.3-ISO 1CD

为什么80%的码农都做不了架构师&#xff1f;>>> CEI Harpoon v1.3-ISO 1CD ARTAS.SAM.v6.0.45.MultiLanguage.Professional 1CD(2D机械模拟分析) CAEFEM v9.3 1CD(有限元分析软件) CAE PowerTools FEvis Publisher v1.1.0.13 1CD (有限元分析工具,可以很容易的把分…

SSA ERP LN v6.1

专业提供CAD/CAM/CAE/CFD/GIS/EDA/AI/FEM软件QQ:627655105联系邮件&#xff1a;yyttsoftwaregmail.com yyttsoftware163.comMSN:yyttsoftwaregmail.comhttp://www.caesoftware.cn-虚拟现实- ~~~~~~~~~~~~ Analytical Graphics产品: Analytical.Graphics.STK.Pro.v8.11…

Analytical.Graphics.STK.Pro.v8.11

专业提供CAD/CAM/CAE/CFD/GIS/EDA/AI/FEM软件QQ:627655105联系邮件&#xff1a;yyttsoftwaregmail.com yyttsoftware163.comMSN:yyttsoftwaregmail.comhttp://www.caesoftware.cn-虚拟现实- ~~~~~~~~~~~~ Analytical Graphics产品: Analytical.Graphics.STK.Pro.v8.11…

00后确实卷,公司新来的卷王,我们这帮老油条还真干不过.....

都说00后躺平了&#xff0c;但是有一说一&#xff0c;该卷的还是卷。 这不&#xff0c;前段时间我们公司来了个00后&#xff0c;工作都没两年&#xff0c;跳槽到我们公司起薪18K&#xff0c;都快接近我了。后来才知道人家是个卷王&#xff0c;从早干到晚就差搬张床到工位睡觉了…

物联网“兴奋剂”让传感器应用遍地开花

传感器处于整个物联网系统的最底层&#xff0c;即感知层&#xff0c;是物联网的核心技术与根基。万物互联时代的到来&#xff0c;给传感器产业注入了“兴奋剂”。传感器越来越多地被应用到社会发展及人类生活的各个领域&#xff0c;可谓“遍地开花”。 而我国传感器产业总体处于…

【一周头条盘点】中国软件网(2018.8.20~2018.8.24)

每一个企业级应用的人都置顶了中国软件网 中国软件网为你带来最新鲜的行业干货 趋势洞察 苗圩:未来5年是我国超高清视频产业发展的战略机遇期 工业和信息化部部长苗圩表示&#xff1a;超高清视频是继视频数字化、高清化之后的新一轮重大技术革新&#xff0c;加快部署和推动我国…

这是我看过最棒的MEMS介绍文章,从原理制造到应用全讲透(强推)

MEMS技术的应用主要有传感器和执行器两部分&#xff0c;本文是一篇比较严肃的MEMS技术科普文章&#xff0c;然而深入浅出&#xff0c;并没有深奥到难以看懂&#xff0c;并且配有多图微观图片讲解&#xff0c;是我看过最好的MEMS技术科普内容&#xff01; 虽然大部分人对于MEM…