dereference相关内容

“取消引用"是什么意思?一个指针是什么意思?

请附上说明的例子. 解决方案 复习基本术语 通常足够好 - 除非您正在编写程序集 - 设想一个 指针 包含一个数字内存地址,其中 1 指的是进程内存中的第二个字节,第三个字节 2,第四个字节 3,依此类推.... 0 和第一个字节发生了什么?好吧,我们稍后再谈 - 请参阅下面的空指针. 要更准确地定义指针存储的内容以及内存和地址的关系,请参阅本文末尾的“有关内存地址的更多信息 ..
发布时间:2021-12-01 14:58:52 C/C++开发

什么是赋值运算符的返回类型?

我刚刚开始使用 C++.我对赋值和取消引用运算符的返回类型有点困惑.我正在关注 C++ Primer 这本书.在各种场合,作者说赋值运算符的返回类型是对左手操作数类型的引用,但后来又说返回类型是左手操作数的类型.我已经提到了 C++11 Standard Sec.5.17,其中返回类型被描述为“左值引用左手操作数". 同样,我无法弄清楚取消引用是返回指向的对象还是对对象的引用. 这些陈 ..
发布时间:2021-11-30 12:28:13 C/C++开发

PHP 5.3.10 vs PHP 5.5.3 语法错误意外的“["

有没有可能是这个PHP代码行 if ($this->greatestId()["num_rows"] > 0) 在 PHP 5.5 中工作并在 5.3 中返回错误?? PHP 解析错误:语法错误,第 43 行/var/www/app/AppDAO.php 中出现意外的 '[' 如何将其更改为在 PHP 5.3 下工作? 解决方案 数组解引用变得可用在 PHP 5.4 这就是为什么这 ..
发布时间:2021-11-18 03:13:12 其他开发

取消引用数组类型的结束指针

是否在 C++ 中很好地定义了取消引用指向数组类型的最后一个指针? 考虑以下代码: #include #include int main(){//一个整数数组int my_array[] = { 1, 2, 3 };//指向数组的指针使用 array_ptr_t = int(*)[3];array_ptr_t my_array_ptr = &my_array;//指向数组末尾的指针arra ..
发布时间:2021-11-18 03:11:35 其他开发

取消引用数组类型的结束指针

是否在 C++ 中很好地定义了取消引用指向数组类型的最后一个指针? 考虑以下代码: #include #include int main(){//一个整数数组int my_array[] = { 1, 2, 3 };//指向数组的指针使用 array_ptr_t = int(*)[3];array_ptr_t my_array_ptr = &my_array;//指向数组末尾的指针arra ..
发布时间:2021-11-18 03:11:25 其他开发

指针指针和数组指针的区别?

鉴于数组名实际上是指向数组首元素的指针,代码如下: #include int main(void){int a[3] = {0, 1, 2};国际*p;p = a;printf("%d\n", p[1]);返回0;} 按预期打印 1. 现在,鉴于我可以创建一个指向指针的指针,我写了以下内容: #include int main(void){int *p0;国际**p1;int (*p2 ..
发布时间:2021-11-18 03:01:55 其他开发

解引用指针和访问数组元素的区别

我记得有一个例子说明了指针和数组之间的区别. 当作为函数参数传递时,数组衰减为指向数组中第一个元素的指针,但它们并不等效,如下所示: //文件file1.cint a[2] = {800, 801};int b[2] = {100, 101}; //文件file2.cextern int a[2];//这里 b 被声明为指针,//尽管外部单元将其定义为数组外部 int *b;int ma ..
发布时间:2021-11-18 02:57:12 其他开发

为什么我不能像 C 中的指针一样对待数组?

我在 SO 上经常看到这个问题.也许不是用太多的话......但是一次又一次地混淆了数组与指针的不同之处.所以我想我会花一点时间就这个问题进行问答. 出于本问答的目的,我们将假设一个 32 位系统并已声明以下内容: char * ptr = "你好";char arr[10] = "你好";int iarr[10] = {0}; 这里有一个问题列表,可以推测我在 SO 上看到的混淆.当我 ..
发布时间:2021-11-18 02:02:12 其他开发

C:通过指针访问第二个 argv

由于我对 C 很陌生,所以我对指针还不太了解.我想检查命令行参数是否为整数,但在单独的函数中,以便传入 argv 数组的指针. int main(int argc, char* argv[]){如果(检查(argv)){//对 argv[1] 做一些事情}}int检查(字符* p){//测试 p+1 是否为 int返回 1;} 我尝试了几件事情,主要是导致奇怪的 printf's(打印取消引用 ..
发布时间:2021-11-17 21:16:35 其他开发

NASM - 这是地址,价值吗?

TL;DR [memloc] 是指值还是地址?如果它指的是任何一个,那么为什么它既可以作为值又可以作为地址?(见下面的代码,第 4 和 5 行) 完整问题... 抱歉问了这么长的问题.我对 NASM 中的标签取消引用感到困惑.举个例子: 01|节.text02|;以退出代码“15"退出程序;03|04|mov [memloc], 15 ;移动 15 到 memloc05|推 [ ..
发布时间:2021-06-07 18:43:56 其他开发

在C中取消引用指向数组的NULL指针是否有效?

此行为是否已定义? volatile long(* volatile ptr)[1] =(void *)NULL;挥发性长v =(长)* ptr;printf(“%ld \ n",v); 之所以起作用,是因为通过取消指向数组的指针,我们正在接收数组本身,然后该数组衰减为指向其第一个元素的指针. 更新的演示: https://ideone.com/DqFF6T 此外,GCC甚至将 ..
发布时间:2021-04-30 19:22:13 其他开发

C ++:是否可以在执行时设置空指针,变量对象或任意对象的类型?

空指针,变量对象和任意对象之所以令人惊叹,是因为它们可以在同一个变量中存储许多不同的类型.但是我有一个问题,我需要在执行时指定它们的类型(创建和/或取消引用它们),有可能吗? 例如,据我所知,要创建和取消引用它们,我必须这样做: void * ptr = new int(8);Variantvar = 8;任何a = 8;...cout ..
发布时间:2021-04-30 19:22:08 其他开发

如何正确取消引用然后删除JavaScript对象?

我想知道从内存中完全取消引用JavaScript对象的正确方法.为了确保将其删除而不将其悬空在内存中,并确保垃圾回收器删除了该对象. 当我看着这个问题时,删除JavaScript中的对象.据解释,如果删除对象的所有引用,GC将从内存中将其删除.我想知道如何从具有方法和属性的对象中删除引用. 假设您具有通过 function 创建的对象,并且该对象同时具有方法和属性.说它看起来像这样: ..
发布时间:2021-04-30 19:22:05 其他开发

取消引用c_void_p的整个数据,不仅是第一个字节

我现在有一个关于Python ctypes和调用C函数的问题,困扰着我几天.我正在使用Python 3.5和ctypes包装C .dll. 我有一个C函数接受 void ** 作为输出参数.调用后,它应该包含一个指向图像的某些8位RGB数据的指针. foo(void ** bar) 我声明我的Python参数和函数调用如下: >> bar = c_void_p()>> foo(by ..
发布时间:2021-04-27 20:02:03 其他开发

*和&和有什么区别?在C中?

我正在学习C,但仍不确定我是否了解& 与 * 之间的区别. 让我尝试解释一下: int a;//声明一个变量int * b;//声明一个指针诠释& c;//不可能a = 10;b =& a;//b获取a的地址* b = 20;//现在的值为20 我得到了这些,但是随后变得令人困惑. void funct(int a)//函数的声明,声明为avoid funct(int * a)/ ..
发布时间:2021-04-19 20:45:40 其他开发

通过“所有权"的不同类型更好的shared_ptr.和“参考"?

我想使用类似指针的对象 所有权m_foo 用于拥有对象和句柄 Referencem_someFoo 作为另一个上下文中的经典“指针",而我的 Reference 应该知道何时不再存在原始对象(例如,通过返回nullptr),并且还应该有可能防止原始对象删除(锁定)一小段时间. 我知道 shared_ptr (所有权)和 weak_ptr (参考) ..
发布时间:2021-04-19 20:30:01 其他开发

解引用中的解前缀是什么意思?有语言解释吗?

我了解到 * 是值运算符,而& 是地址运算符。正式称为取消引用和引用。每当我与某人交谈时,我都会使用“取消引用”一词,因为它使我想起了“引用”一词,然后我感到困惑。我从中学到的东西知道,如果我知道解除引用的前缀,意味着我将不再遇到这个问题。 我以同样的方式了解了 我绊倒的另一个原因是,由于我(有限)对de-取消引用中的前缀似乎意味着删除了引用,不是这种情况。 那么,这意味着什么? ..
发布时间:2020-10-21 00:00:47 其他开发

取消引用结构以获得第一个成员的价值

我发现结构的第一个元素的地址与结构的地址相同。但是,取消引用结构的地址不会返回第一个数据成员的值。但是,取消引用第一个数据成员的地址的确会返回其值。例如。结构的地址= 100,结构的第一个元素的地址也为100。现在,解除引用应该在两者上以相同的方式进行。 代码: #include #include 结构事物{ int好; in ..
发布时间:2020-10-21 00:00:43 其他开发