📜  C Pass地址和指针(1)

📅  最后修改于: 2023-12-03 15:13:46.165000             🧑  作者: Mango

C 中的地址和指针

在 C 语言中,地址是指变量或数据对象在计算机内存中的位置。而指针是指存放地址变量的对象,它可以用于访问该地址对应的变量或数据对象。在 C 语言中,我们可以使用地址和指针来实现更高级的程序功能,比如动态内存分配和数据结构的实现。

获取地址 & 使用指针

要获取变量的地址,可以使用 “&” 运算符,例如:

int a = 10;
int *p;
p = &a;

在这个例子中,我们声明了一个整型变量 a 和一个指向整型变量的指针 p。通过 “&a” 可以获取 a 变量的地址,并将其赋值给指针 p。现在,我们就可以使用指针 p 来访问 a 变量的值了:

printf("Value of a: %d\n", *p); // Output: 10

在这个例子中,通过使用 “ * ” 运算符,我们可以获取指针 p 所指向的地址的值。

指针的算术运算

指针可以进行算术运算。这包括指针的加法、减法、比较运算、递增以及递减运算。例如:

int *p;
int a[5] = {1, 2, 3, 4, 5};
p = &a[0];
printf("Value of *p: %d\n", *p);  // Output: 1
p++;
printf("Value of *p: %d\n", *p);  // Output: 2
p = p + 2;
printf("Value of *p: %d\n", *p);  // Output: 4

在这个例子中,我们声明了一个指向整型数组 a 的指针 p,然后将其指向数组的第一个元素。接着,我们对指针进行了加法运算,将其指向了数组的第二个元素,然后再次进行加法运算,将其指向数组的第四个元素。

指针的类型

指针的类型与其指向的变量的类型有关。在上面的例子中,我们声明了一个指向整型变量的指针,因此我们可以使用 “ *p ” 获取指针所指向的整型变量的值。如果我们声明了一个指向字符型变量的指针,我们也可以通过类似的方式来访问其所指向的字符型变量的值。