理解C语言中的指针只需要两个案例
2024-01-08 00:59:39
前言
在C语言中,指针是一种特殊的变量,它用于存储另一个变量的内存地址。理解指针的关键是明白它实际上是一个指向内存位置的变量。这里有几个关键点来帮助你理解:
- 内存地址:每个变量都存储在计算机内存的某个位置,这个位置有一个特定的地址。就像房子有街道地址一样,内存地址是找到那个内存位置的方式。
- 声明指针:在C语言中,你可以声明一个指针来存储某种类型变量的地址。例如,
int *ptr;
声明了一个指向整数的指针。 - 赋值:你可以将一个变量的地址赋给指针。例如,如果你有一个整数变量
int num = 10;
,你可以使用ptr = #
将num
的地址赋给ptr
。这里,&
符号用于获取变量的地址。 - 访问值:一旦你有了指向某个变量的指针,你可以使用
*
运算符来访问或修改该地址处的值。例如,*ptr = 20;
会将ptr
指向的内存地址(即num
)中的值更改为 20。 - 指针的指针:你甚至可以有一个指向另一个指针的指针,以此类推。这允许你创建复杂的数据结构,如链表和树。
- 动态内存分配:指针在动态内存分配中扮演关键角色。使用如
malloc
或calloc
这样的函数,你可以在运行时分配内存,并使用指针来引用这块内存。 - 数组和指针:在C语言中,数组和指针紧密相关。数组名本质上是一个指向数组第一个元素的指针。
案例一
#include <stdio.h>
int main() {
int num = 10;
int *ptr; // 声明一个指向整数的指针
ptr = # // 将num的地址赋给ptr
printf("num的值: %d\n", num);
printf("ptr指向的值: %d\n", *ptr);
*ptr = 20; // 通过ptr更改num的值
printf("num的新值: %d\n", num);
return 0;
}
结果:
num的值: 10
ptr指向的值: 10
num的新值: 20
案例二
#include <stdio.h>
void addTen(int *p) {
*p = *p + 10; // 在指针指向的值上增加10
}
int main() {
int num = 10;
printf("原始值: %d\n", num);
addTen(&num); // 将num的地址传给函数
printf("增加后的值: %d\n", num);
return 0;
}
结果
原始值: 10
增加后的值: 20
文章来源:https://blog.csdn.net/weixin_52312427/article/details/135350262
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!