“指向”存储在内存中的另一个值的数据类型。指针变量包含某个其他实体(变量或函数或其他实体)的内存地址。此标记应用于涉及指针使用的问题,而不是引用。使用指针的最常见编程语言是C,C ++,Go和汇编语言。使用特定语言标记。其他有用的标签是描述指针使用的方法,函数,结构等。
我正在尝试实现 Knuth 的算法 X,但我在生成链表时遇到了问题。我的列标题和数据点是不同的类型,但构建相似。 输入 ListObject 整数...
我正在尝试用 for 打印我的数组的名称,但输出给了我随机字母和符号, 我不能正确地转换它来打印结构的名称。 类型定义结构{ // uint8_t 名称;...
我是 C 的新手,继承了一些遗留代码,我试图理解并对其进行一些改进。我需要将元素添加到 char 数组指针,但我无法找出正确的语法....
我不确定如何表达我的问题,但基本上我想要的是使用一个指针,在这种情况下是行,对其进行 malloc 并放入数据,然后返回它。问题是,当我调用函数时
Exception _debugbreak() 执行 main() 函数后
这段代码完全正确执行,但是在退出main()函数时,抛出异常: 程序中执行了断点指令(__debugbreak() 语句或类似调用)...
我是一名计算机科学专业的学生,我们现在正在处理c上的指针,但是它是c编程语言中最复杂的概念之一,大多数初学者都很难理解......
这是写数组指针的过程。 int *pj = *pi;, *pi是数组的值,为什么没有报错呢? (假设pi包含第二行的地址值,我觉得*pi...
我正在解决一个反转单链表的 Leetcode 问题。 问题在这里 https://leetcode.com/problems/reverse-linked-list/description/ 这是我的代码。 /** * single-l 的定义...
typedef结构_foo { 诠释 [20]; 诠释乙; 诠释 c; 富; 例如: 保留 5 的所有字段,然后我开始在 s...
我正在做一个在链表的特定位置插入节点的功能。 除了选项 5) 在特定位置插入和 9) 显示之外,一切都运行良好。 如果我选择 5),...
Auto cast void pointer to pointer to double in function call
我有一个问题,它可能已经在其他地方得到了回答,但我找不到它,所以如果它已经存在,我深表歉意。 我有以下代码: #包括 void foo(双 *
当ptr是一个指针数组时,为什么ptr和*ptr显示相同的值?
我理解ptr是指向ptr[0]地址的指针。 因此,我认为 *ptr 将代表 ptr[0] 的值。 但是为什么两者显示出相同的值呢? 这是代码。 #包括 我理解ptr是指向ptr[0]地址的指针。 因此,我认为*ptr会代表ptr[0]的值。 但为什么两者显示相同的值? 这是代码。 #include <iostream> using namespace std; int main(void) { int M[3][3]={{1,2,3},{4,5,6},{7,8,9}}; int (*ptr)[3]; int *p; int **pt; ptr = M; cout << ptr << " " << *ptr; return 0; } 我期待对此有一个明确的答案。 此外,我想知道如何打印出 ptr[0]。 当ptr是一个指针数组时,为什么*ptr和ptr显示相同的值? 你的解释是错误的ptr是错误的。特别是 ptr 不是指针数组,而是指向 int[3]. 类型数组的指针 这意味着 ptr 的类型是 int (*)[3] 这反过来意味着 *ptr 的类型是 int[3]。现在由于称为 array to pointer decay 的属性,此结果数组衰减为 int*(表示指向其第一个元素的指针)并为您提供观察到的输出。 更重要的是,请注意ptr指向第一个内部数组{1,2,3},它与*ptr具有相同的值。也就是说,ptr和*ptr的类型不同,但它们的值对于给定数组是相同的。 我想知道如何打印出来ptr[0]. 从上面的讨论我们可以看出,*ptr和ptr[0]是一样的,所以你已经得到了你想要的值。
为什么函数可以接收一个字符数组作为字符指针,为什么函数可以改变元素的值?
我将 char 指针声明为函数的参数,并将 char 数组作为参数。 有人告诉我 char 指针和 char 数组是不同的类型。 但是函数可以有一个 char 数组作为...
1。双指针 (malloc) 发生错误:损坏的大小与 prev_size 但是当我在 fclose(f) 之后移动双指针 malloc 部分时,它起作用了。我不知道为什么。 2. 动态分配的双数组
在 Keil uVision 的 STM32 开发板示例中,我发现了以下函数: __NO_RETURN static void thrLED(void *argument) { ... (空)论证; ... } 什么意思...
以下程序抛出分段错误。 #include 内部主要(){ char *p = "exs"; 字符 x; x = (*p)++; printf("%c “,X); 返回(0); }
//数组指针 #include 主函数() { int arr[] = { 3, 5, 6, 7, 9 }; int *p = arr; int (*ptr)[5] = &arr; printf("p = %p, ptr = %p ", p, 指针);
我只是想交换指针中的地址。你知道只是尝试。 所以我得到了我可怜的代码: 不安全类测试 { 静态无效主要() { 整数 = 1;整数 b = 2; 整数* x = &a...
如果在类的上下文中使用它,是否有一种方法可以在不提及类名的情况下获取指向成员的指针
下面的代码给出了以下编译错误: main.cpp:5:48: 错误:无效使用非静态数据成员“id” static constexpr int 类型::* mem_ptr_id = &id; ...
我正在学习 cpp 中的指针并编写了这段代码,但是当我运行这段代码时,结果与我预期的不同,但为什么? #包括 使用命名空间标准; 内部主要...