sách gpt4 ai đã đi

Xử lý con trỏ C (cơ bản)

In lại 作者:太空宇宙 更新时间:2023-11-04 05:18:05 30 4
mua khóa gpt4 Nike

我仍在努力适应指针。不是概念——我理解内存位置、匹配可变长度的指针增量等——这是语法。这是一个我认为是我感到困惑/无法直观把握的原因之一:

int a = 42;

在一个int大小的内存空间中分配并放入42

int *pa = &a;

在内存中分配一个指向包含变量“a”的地址的指针。

printf("%d \n", *pa);

打印 42。

简单/基本。困扰我的是:

int *pa = &a;

似乎表明 *pa&a 相等;等于Một的内存地址。但是在:

printf("%d \n", *pa);

*paĐúngpa指向的地址的内容。所以 *pa 看起来是两种不同的东西(地址或整数),具体取决于上下文。并让我担心“=”!=“=”。

现在我不是要提示/重新定义/质疑语言,我只是想知道是否有人有任何提示可以帮助我更好地理解它,使它更直观。如果您真的懂这门语言,我认为这是完全合乎逻辑的;我希望有人能解释它,所以它对我来说也是合乎逻辑的。

1 Câu trả lời

int ** 不同在printf("%d \n", *pa); .

具体来说,int * ,整个东西,基本上是一个类型:一个“指向 số nguyên” 类型的指针。

换句话说,int *是一种类型。

但是,调用 *pathể hiện解引用指针pa .所以,*是一个运算符:遵从运算符。

另外,迂腐一点,=实际上是赋值运算符。

* 的三种一般情况:

  1. 指针类型。 *将遵循一种类型。示例:int *是指向 int 类型的指针。
  2. 解引用运算符。这是一个一元运算符,并取消引用指针以获取内存地址中的“基础值”。
  3. 乘法运算符。这是一个二元运算符.

关于C指针处理(基础),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28143775/

30 4 0
Bài viết được đề xuất: c - 'main' 的返回类型不是 'int'
Bài viết được đề xuất: javascript - 将R动画包生成的html文件上传到wordpress
Bài viết được đề xuất: css - 歌剧不支持仅图像上的边界半径
Bài viết được đề xuất: C - 检测到堆栈粉碎
太空宇宙
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com