pointer-arithmetic 相关问题

您可以对指针执行有限数量的算术运算。这些操作是:递增,递减,加法,减法,比较和赋值。

C中的强制转换行为

我目前正试图避免C中的指针算术运算来编写模拟器。通常,如果在C中向指针添加1,则添加指向对象的大小。但是,我...

回答 2 投票 1

将指针差异转换为“int *”意味着什么?

ptr3 =(int *)(ptr2 - ptr1)ptr2 - ptr1给出下标之间的差异。将ptr2 - ptr1转换为整数会让我感到困惑,因为它已经是一个整数。为什么这样?编辑: - ptr1,ptr2,ptr3 ......

回答 1 投票 0

对于数组,为什么a [5] == 5 [a]?

正如Joel在Stack Overflow播客#34中指出的那样,在C编程语言(又名:K&R)中,C中提到了数组的这种属性:a [5] == 5 [a] Joel说这是因为指针......

回答 18 投票 1515

如何使用简单的指针算法访问结构的属性?

我有这个结构以及初始化它的方法:struct Person {char name [32]; char lastn [32]; size_t年; }; void init_pers(struct Person * p,const char * n,const char * ...

回答 1 投票 -1

如果我想安全地编写Rust代码,我应该不使用指针算法进行编码吗?

我已经读过Rust中的指针算法可以通过pointer.offset()函数完成,但它总是必须在不安全的代码中实现:fn main(){let buf:[u32; 5] = [1,2,3,4,5]; ...

回答 2 投票 0

通过指针算法计算数组长度

我想知道*(&array + 1)实际上是如何工作的。我认为这是一种计算数组长度的简单方法,并希望在使用之前正确理解它。我对指针不太熟悉......

回答 3 投票 8

指针是否支持“数组样式索引”?

(自我回答的问答 - 这个问题不断出现)我假设读者知道指针算法是如何工作的。 int arr [3] = {1,2,3}; int * ptr = arr; ...... *(ptr + i)=价值;教师/ C ......

回答 1 投票 5

我们可以减去NULL指针吗?

由于指针运算是在同一个数组中定义的,所以如果我们可以从另一个NULL中减去NULL,我就会有疑问。我关注的是://第一个和第二个都可以来自......

回答 4 投票 5

二维数组和指针

我被教导说,编译器会在必要时将数组名称转换为指向数组第1个元素的指针。所以我用这个规则来解决很多问题,直到我看到这个都没关系。 int main(){...

回答 2 投票 0

我试图计算一个char数组中的内容,直到null终止,但每次我编译我得到一个大于我的数组的数字

无论我为数组的大小设置什么值,我写的函数返回的值都要大一些。我试过,虽然(* str ++)并从while循环中删除str ++,而不是......

回答 2 投票 0

指针算术是否在联合UB的非活动成员上?

让我们考虑这个示例代码:struct sso {union {struct {char * ptr; char size_r [8]; } large_str; char short_str [16]; }; const char * ...

回答 3 投票 12

将指针传递给函数的问题

我正在尝试编写一些需要两个命令行参数(一个单词和一个字母)的东西,并从单词中删除该字母的所有实例。例如,如果我通过Hello和e,Hllo应该......

回答 1 投票 0

C - 指针算术用机器码测试仪骨架

我在网上用C编写了一个类似形式的机器代码测试器。测试人员使用指针算法来运行机器代码的缓冲区。 #包括 #包括

回答 1 投票 0

使用数组和指针算法闪烁LED

#include“lm4f120h5qr.h”#define LED_RED(1u << 1)#define LED_BLUE(1u << 2)#define LED_GREEN(1u << 3)GPIO_PORTF_DATA_R | = LED_RED; // line1 *((unsigned long volatile *)(...

回答 1 投票 1

C - 指针减法[重复]

我以为我理解了指针和指针的算术,但后来我遇到了意想不到的事情。当我运行这段代码时,我以为我会看到“(header + 1) - header = 32”作为输出。 ...

回答 1 投票 0

为什么在减去指向结构的指针时会得到奇怪的结果? [重复]

我知道减去特定数据类型的指针应该返回项目的数量(具有这种特定的数据类型),这将在指针之间的内存中整体容纳。一世 ...

回答 1 投票 -1


C中空指针的指针算法

当指向特定类型(例如int,char,float,..)的指针递增时,其值将增加该数据类型的大小。如果指向大小为x的数据的void指针递增,...

回答 8 投票 148

C上的指针需要简单的验证

问题是Reek之前提到的手册的一部分。我得到了变量:h在1080地址下,值1020 i在1020地址下,值为1080.评估表达式的L值和R值** h,...

回答 2 投票 -1

为什么下面代码中的printf语句打印的是值而不是垃圾值?

int main(){int array [] = [10,20,30,40,50]; printf(“%d \ n”, - 2 [array -2]);返回0;任何人都可以解释-2 [array-2]是如何工作的,为什么[]在这里使用?这是我的一个问题......

回答 4 投票 2

© www.soinside.com 2019 - 2024. All rights reserved.