当前位置:   article > 正文

常见C语言基础说明六:向函数参数传值与取数组元素

常见C语言基础说明六:向函数参数传值与取数组元素

一.  简介

前面几篇学习了  C语言中基础问题,文章如下:

常见C语言基础题说明一-CSDN博客

常见C语言基础说明二:位运算问题-CSDN博客

常见C语言基础说明三:static修饰的函数或变量-CSDN博客

常见C语言基础说明四:#define宏定义与 a---CSDN博客

常见C语言基础说明五:数组名当函数参数传入-CSDN博客

本文继续学习 嵌入式C开发中,可能涉及的一些C语言基础问题。

二. 常见C语言基础说明六:向函数参数传值与取数组元素

1.  向函数中传值

有如下代码,计算运行结果:

  1. #include <stdio.h>
  2. void fun(int a, int b, int c)
  3. {
  4. c = a*3+b+1;
  5. c++;
  6. }
  7. int main(void)
  8. {
  9. int value = 20;
  10. fun(5, 7, value);
  11. printf("%d\n", value);
  12. return 0;
  13. }

打印结果:

20

分析如下:

这里调用函数,只是将变量 value 的值传入函数内部,向函数参数传递值,什么也改变不了。

所以,输入结果为 20。

2.  数组元素访问  (*buf )

有如下字符串拷贝代码,输入结果是多少?

  1. #include <stdio.h>
  2. #include <string.h>
  3. int main(void)
  4. {
  5. char str1[15] = "china red";
  6. char str2[15] = "china green";
  7. strcpy(str1, str2);
  8. printf("%c, %c\n", *str1, *(str1+1));
  9. return 0;
  10. }

输入结果为:

c, h

分析如下:

数组元素的访问方式:

(1)  利用下标

例如, buf[0] ,buf[1] 等等

(2) 利用指针常量访问,也就是地址法

例如, *buf, *(buf+1)  等依次类推。

这里 buf是数组的首元素的地址,*buf即取出地址中的数据,也就是 首元素数据。

(3)  利用指针法

例如,这里可以定义(一个数组元素) char类型的指针 ptr,ptr = &a,则 *ptr就是第一个元素,然后依次类推,可以访问到所以的元素。

综上所述 ,上面代码中  *str1即取出首元素,则 *(str+1) 即取出第二个元素。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/589282
推荐阅读
相关标签
  

闽ICP备14008679号