C 程序 指针变量

  • Post category:C

下面是关于C语言指针变量的完整使用攻略。

什么是指针变量

指针变量是一种特殊类型的变量,它存储的是一个内存地址,该地址指向另一个变量的位置。因此,指针变量可以用来访问和修改其他变量的值。

定义指针变量

定义指针变量的方法是在变量名前加上“*”,例如:

int *p;

这里定义了一个指向整数类型的指针变量p。

取地址运算符&

在C语言中,可以使用取地址运算符“&”来获取一个变量的地址,例如:

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

这里定义了一个整数类型变量a并初始化为10,然后定义一个指向整数类型的指针变量p,并将a的地址赋值给p。

*号运算符

在C语言中,“”号运算符在不同的情况下有不同的含义。如果在变量名前使用“”号,则表示这个变量是一个指针变量。如果在表达式中使用“*”号,则表示获取指针变量指向的内存地址的值。

例如:

int *p;
int a = 10;
p = &a;  // 将a的地址赋给p
printf("%d", *p);  // 打印p指向的内存地址的值,即a的值10

指针变量的应用示例

示例一:使用指针变量交换两个变量的值

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

int main() {
    int a = 10, b = 20;
    swap(&a, &b);
    printf("a=%d, b=%d", a, b);  // 输出 a=20, b=10
    return 0;
}

这里定义了一个swap函数,传入两个指向整数类型的指针变量a和b,通过指针变量交换两个变量的值。

示例二:使用指针变量实现动态内存分配

在C语言中,可以使用指针变量实现动态内存分配。例如,下面的代码段使用malloc函数在堆中分配了一个整数类型变量的内存,并将返回的地址赋给指针变量p。

int *p = (int *)malloc(sizeof(int));

当不再需要这个内存时,也可以使用指针变量释放这块内存,例如:

free(p);

这里使用了free函数释放p指向的内存地址,这个内存现在可以被其他程序使用。

以上就是关于C语言指针变量的完整使用攻略。