C-指针和变量

时间:2020-02-23 14:31:59  来源:igfitidea点击:

在本教程中,我们将学习使用C编程语言中的指针操作变量。

从"指针"教程中我们已经知道如何创建指针变量以及如何其中存储变量的地址。

现在让我们继续创建一个整数" int"变量,并通过一个整数指针变量" ptr"对其进行操作。

创建一个整数变量

这很简单。
我们要做的就是使用" int"数据类型声明一个变量。

int num = 10;

上面的代码行将发生三件事。

  • 内存位置位于存储整数值的位置。

  • 值10保存在该存储位置。

  • 我们可以使用变量名" num"来引用内存位置。

创建整数指针变量

现在我们将创建一个整数指针变量" ptr",该变量将存储整数变量" num"的地址。

要获取变量的地址,我们使用&运算符的地址。

int *ptr = #

我们可以如下表示整数变量" num"和指针变量" ptr"。

因此,我们可以看到为变量num分配了内存位置8280(它将在下一次执行程序时更改)。
在该位置中存储了值10。

类似地,变量" ptr"被分配了内存位置8272,并且它拥有值8280,该值是变量" num"的存储位置。
因此,ptr指向num变量。

通过指针访问变量的值

要通过指针变量" ptr"访问存储在变量" num"中的值,我们必须在" *"运算符的地址处使用该值。

我们已经将变量num的地址存储在变量ptr中。
因此,使用* ptr将使用存储在地址中的值,即存储在num变量中的值。

//value of num via ptr
printf("num value via ptr: %d\n", *ptr);

通过指针更新变量的值

要通过指针更新变量的值,我们必须首先获取变量的地址,然后在该内存地址中设置新值。

我们通过&运算符的地址获取地址,然后使用*运算符地址的值来设置值。

//updating the value of num via ptr
*ptr = 20;

完整的代码:

#include <stdio.h>

int main(void) {
  
  //num variable
  int num = 10;

  //ptr pointer variable
  int *ptr = NULL;

  //assigning the address of num to ptr
  ptr = &num;

  //printing the value of num - Output: 10
  printf("num: %d\n", num);
  printf("num via ptr: %d\n", *ptr);
 
  //updating the value of num via ptr
  printf("Updating value of num via ptr...\n");
  *ptr = 20;

  //printing the new value of num - Output: 20
  printf("num: %d\n", num);
  printf("num via ptr: %d\n", *ptr);

  return 0;
}
num: 10
num via ptr: 10
Updating value of num via ptr...
num: 20
num via ptr: 20