亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> C语言

C 传递地址和指针

C 传递地址和指针

在本教程中,您将学习在示例的帮助下将地址和指针作为参数传递给函数。

在 C 编程中,也可以将地址作为参数传递给函数。

要在函数定义中接受这些地址,我们可以使用指针。这是因为指针用于存储地址。举个例子吧:


示例:将地址传递给函数

#include <stdio.h>
void swap(int *n1, int *n2);

int main()
{
    int num1 = 5, num2 = 10;

    // address of num1 and num2 is passed
    swap( &num1, &num2);

    printf("num1 = %d\n", num1);
    printf("num2 = %d", num2);
    return 0;
}

void swap(int* n1, int* n2)
{
    int temp;
    temp = *n1;
    *n1 = *n2;
    *n2 = temp;
}

当你运行程序时,输出将是:

num1 = 10
num2 = 5

num1 的地址 和 num2 被传递给 swap() 使用 swap(&num1, &num2); 的函数 .

指针 n1n2 在函数定义中接受这些参数。

void swap(int* n1, int* n2) {
    ... ..
}

*n1*n2swap() 内更改 函数,num1num2main() 里面 功能也变了。

swap()里面 函数,*n1*n2 交换了。因此,num1num2 也被交换了。

注意 swap() 没有返回任何东西;它的返回类型是 void .


示例 2:将指针传递给函数

#include <stdio.h>

void addOne(int* ptr) {
  (*ptr)++; // adding 1 to *ptr
}

int main()
{
  int* p, i = 10;
  p = &i;
  addOne(p);

  printf("%d", *p); // 11
  return 0;
}

这里,存储在 p 的值 , *p , 最初是 10。

然后我们传递了指针 paddOne() 功能。 ptr 指针在 addOne() 中获取此地址 功能。

在函数内部,我们增加了存储在 ptr 的值 通过 1 使用 (*ptr)++; .由于 ptrp 指针都有相同的地址,*pmain() 内 也是 11 岁。


C语言

  1. C# 关键字和标识符
  2. C# 位和位移运算符
  3. C# 类和对象
  4. C#抽象类和方法
  5. C# 部分类和部分方法
  6. C# 密封类和方法
  7. 将数组传递给 C 中的函数
  8. C 指针
  9. 数组和指针的关系
  10. C 结构体和指针
  11. C - 常量和文字
  12. C - 指针