您可以对指针执行有限数量的算术运算。这些操作是:递增,递减,加法,减法,比较和赋值。
我目前正试图避免C中的指针算术运算来编写模拟器。通常,如果在C中向指针添加1,则添加指向对象的大小。但是,我...
ptr3 =(int *)(ptr2 - ptr1)ptr2 - ptr1给出下标之间的差异。将ptr2 - ptr1转换为整数会让我感到困惑,因为它已经是一个整数。为什么这样?编辑: - ptr1,ptr2,ptr3 ......
正如Joel在Stack Overflow播客#34中指出的那样,在C编程语言(又名:K&R)中,C中提到了数组的这种属性:a [5] == 5 [a] Joel说这是因为指针......
我有这个结构以及初始化它的方法:struct Person {char name [32]; char lastn [32]; size_t年; }; void init_pers(struct Person * p,const char * n,const char * ...
如果我想安全地编写Rust代码,我应该不使用指针算法进行编码吗?
我已经读过Rust中的指针算法可以通过pointer.offset()函数完成,但它总是必须在不安全的代码中实现:fn main(){let buf:[u32; 5] = [1,2,3,4,5]; ...
我想知道*(&array + 1)实际上是如何工作的。我认为这是一种计算数组长度的简单方法,并希望在使用之前正确理解它。我对指针不太熟悉......
(自我回答的问答 - 这个问题不断出现)我假设读者知道指针算法是如何工作的。 int arr [3] = {1,2,3}; int * ptr = arr; ...... *(ptr + i)=价值;教师/ C ......
由于指针运算是在同一个数组中定义的,所以如果我们可以从另一个NULL中减去NULL,我就会有疑问。我关注的是://第一个和第二个都可以来自......
我被教导说,编译器会在必要时将数组名称转换为指向数组第1个元素的指针。所以我用这个规则来解决很多问题,直到我看到这个都没关系。 int main(){...
我试图计算一个char数组中的内容,直到null终止,但每次我编译我得到一个大于我的数组的数字
无论我为数组的大小设置什么值,我写的函数返回的值都要大一些。我试过,虽然(* str ++)并从while循环中删除str ++,而不是......
让我们考虑这个示例代码:struct sso {union {struct {char * ptr; char size_r [8]; } large_str; char short_str [16]; }; const char * ...
我正在尝试编写一些需要两个命令行参数(一个单词和一个字母)的东西,并从单词中删除该字母的所有实例。例如,如果我通过Hello和e,Hllo应该......
我在网上用C编写了一个类似形式的机器代码测试器。测试人员使用指针算法来运行机器代码的缓冲区。 #包括 #包括
#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 *)(...
我以为我理解了指针和指针的算术,但后来我遇到了意想不到的事情。当我运行这段代码时,我以为我会看到“(header + 1) - header = 32”作为输出。 ...
我知道减去特定数据类型的指针应该返回项目的数量(具有这种特定的数据类型),这将在指针之间的内存中整体容纳。一世 ...
当指向特定类型(例如int,char,float,..)的指针递增时,其值将增加该数据类型的大小。如果指向大小为x的数据的void指针递增,...
问题是Reek之前提到的手册的一部分。我得到了变量:h在1080地址下,值1020 i在1020地址下,值为1080.评估表达式的L值和R值** h,...
int main(){int array [] = [10,20,30,40,50]; printf(“%d \ n”, - 2 [array -2]);返回0;任何人都可以解释-2 [array-2]是如何工作的,为什么[]在这里使用?这是我的一个问题......