卓越飞翔博客卓越飞翔博客

卓越飞翔 - 您值得收藏的技术分享站
技术文章65597本站已运行4129

指针:它们指向什么?

C 中的指针

指针是 c 编程中的一个基本概念,使您能够直接访问和操作内存。理解指针对于有效且高效的 c 编程至关重要。

什么是指针?

指针是代表内存地址的值。它指向特定的内存位置,允许您访问和修改存储在该位置的值。

基本示例

int some_var = 4;
int *pointer_to_some_var = &some_var;
这里&some_var是some_var的地址;
符号 功能 示例
一些_变量 将值保存在特定的内存位置 int x = 3;
* 指向某个变量的内存地址 int *pX;
& 保存以下变量的地址值 &x;

Image description

引用和解除引用

符号 它包含什么/意味着什么 示例代码
声明变量 变量的值 `int x = 10;`
指针 指针指向某个地址 int *p = &x;
变量地址(&) 变量的内存位置(例如:0x7ffe2f14f97c) printf("变量x的地址是%p",(void*)&x);
指针以前面的 &(指针变量)来命名自己 指针的内存地址(例如:0x7ffe2f14f97c) printf("指针p的地址是%p",(void*)&p);
以 * 开头的指针(不要与指针类型的初始化混淆) 指针指向的值(也称为解引用) printf("指针p指向的值为%d",*p);

为什么要使用指针?

指针有助于管理作用域问题,特别是在使用具有结构的函数时。通过使用指针,您可以通过内存地址访问函数中的超出范围的变量。

我们通过提供指向此类变量(或结构)的内存地址的指针来使用指针来访问函数中的范围外变量。

例子

#include <stdio.h>
#include <stdbool.h>

结构员工类型
{
    整数ID;
    收入;
    布尔员工;
};

无效initialize_employee(结构employee_type * e){
    e-&gt;id = 0;
    e-&gt;收入=0;
    e-&gt;员工=真;

    返回;
}
int main(){
    结构雇员类型拉尔夫;    
    初始化_员工(&amp;Ralph);

    printf("%d", 拉尔夫.收入);
}
</stdbool.h></stdio.h>

常见陷阱

  • 未初始化的指针:始终初始化指针。未初始化的指针指向随机内存位置,导致未定义的行为。

  • 悬空指针:不要使用指向已释放或超出范围的内存的指针。

  • 指针算术:小心指针算术,以避免访问内存越界。

卓越飞翔博客
上一篇: Laravel 中的设计模式:使用可重用解决方案提升代码水平
下一篇: 返回列表
留言与评论(共有 0 条评论)
   
验证码:
隐藏边栏