“指向”存储在内存中的另一个值的数据类型。指针变量包含某个其他实体(变量或函数或其他实体)的内存地址。此标记应用于涉及指针使用的问题,而不是引用。使用指针的最常见编程语言是C,C ++,Go和汇编语言。使用特定语言标记。其他有用的标签是描述指针使用的方法,函数,结构等。
我正在尝试构建一个数独求解器。我还试图为每个任务创建小文件,这样我就没有一个不可能的大文件来调试。忽略输入,我需要取 9x9 矩阵 ...
睡了一夜后编辑 此代码有效 #包括 #define MAX_X 5 #define MAX_Y 6 无效主要(无效){ 诠释我,j,k; 双*辅助; 双 *MM[MAX_X][MAX_Y]; ...
我一直在尝试运行这段代码并不断出现分段错误,但数组确实打印出来了。 我到底做错了什么? 我相信问题主要在于有趣的格式......
我一直在尝试运行这段代码并不断出现分段错误,但数组确实打印出来了。 我到底做错了什么? 我相信问题主要在于有趣的格式......
我正在学习 C 并试图理解句号“。”正在处理变量 x 和 a;这个操作叫什么,它有什么作用? 这是完整的代码: #包括 我正在学习 C 并试图理解什么是句号“。”正在处理变量 x 和 a;这个操作叫什么,它做什么? 这里是完整的代码: #include <stdio.h> #include <stdlib.h> // Create a structure called myStructure struct T { int *a; struct T* next; }; int *y; int **z; struct T x; struct T* p1; struct T* p2; struct T** p3; int main() { p1 = (struct T*)malloc(sizeof(struct T)); p2 = &x ; y = (int *) malloc(sizeof(int)); {int* a[3]; a[1] = (int *) malloc(sizeof(int)); z = &a[1]; x.a = *z; // point 1 (*p1).a = *z; // point 2 } (*p1).next = p1; // point 3 p2 = p1; // point 4 p3 = &p1; // point 5 p3 = *(&p3) ; // point 6 p3 = &(*p3) ; // point 7 x.a = y ; // point 8 z = x.a ; // point 9 free(x.a); // point 10 } . 运算符称为结构/联合成员运算符(奇怪的是,仅以这种方式在索引中引用)。它不适用于数组。 struct T 类型有两个成员 a 和 next。 struct T x;定义了一个类型为x的对象struct T,表达式x.a表示访问对象a的成员x。相关的是箭头运算符->,它做同样的事情,除了左侧是一个指针,例如(&x)->a,或p1->a。 这里是 C17 规范的相关部分,6.5.2.3,p。 59: 后缀表达式后跟 .运算符和标识符指定结构或联合对象的成员。该值是命名成员的值,97)并且如果第一个表达式是左值,则该值是左值。如果第一个表达式具有限定类型,则结果具有指定成员类型的限定版本。 后缀表达式后跟 -> 运算符和标识符指定结构或联合对象的成员。该值是第一个表达式指向的对象的命名成员的值,并且是一个左值。98)如果第一个表达式是指向限定类型的指针,则结果具有该类型的限定版本指定会员
如何在运行时在 C 中增长指针或数组(在编译时不知道结束长度)
我想在运行时增加一个数组(不使用 macos 预先定义长度) 我有以下问题 可以用数组来做吗? 如果不是,我应该使用指向 int 的指针吗? 我尝试了
如何在 C 中将 crc16 值附加到 char 数组的末尾?
我有一些数据需要作为字符串连同 crc16 值一起发送。格式是这样的: ",,,...,crc16 “ 我有一个 crc16 函数,我将数据作为字符传递给...
我有一个可以正常工作的代码 双 *foo (int i, int j){ 双*辅助; 做一点事 返回辅助; } 无效主要(无效){ 双 *MM[MAX_X][MAX_Y]; .. .. // 计算为 MM 对于(我...
我在标准 C 中阅读了很多有关 malloc() 和 free() 的内容。据我了解,您 malloc() 只为某些内存使用一次,然后您 free() 同一内存恰好一次。这可能是不好的做法,...
我有一个可以正常工作的代码 双 *foo (int i, int j){ 双*辅助; 做一点事 返回辅助; } 无效主要(无效){ 双 *MM[MAX_X][MAX_Y]; .. .. // 计算为 MM 对于(我...
示例 9.10 C++ E Balaguruswamy [关闭]
公众: 人(const char * s,float a) { strcpy(名称, s); 年龄=一个; ...
我正在尝试使用这个看似简单的代码来使用指针: #包括 void prod_and_sum(int a, int b, int *p, int *s) { *p = a * b; *s = a + b; } 诠释主要(){ int *p1, *p2;...
在下面的代码中, 字符*str1 =“141”; 字符 *str2 = "3.14" 但也可以这样做: 字符 str1[] = "141"; 字符 str2[] = "3.14" 我知道...
我没想到这段代码可以编译: #包括 #包括 A类 { 民众: 内联 int get() const { 返回 m_i; } 内联无效集(缺点...
int main(){ int a[][3]={1,2,3,4,5,6}; int (*ptr)[3]=a; printf(" %d",(*ptr)[1]) ; } 我知道变量 ptr 是第一个 int 类型的一维数组的指针...
在尝试手动解决时,我无法理解如何获取以下 C++ 代码输出的正确值。 #包括 使用命名空间标准; int f(int a, ...
golang struct interface pointer set by function returning nothing
测试我的代码 https://go.dev/play/p/2l9vmvATG4J?v=goprev 代码: 包主 进口 ( “调频” “反映” “不安全” ) 类型 A 结构 { v1 整数 } func (this \*A) Re() floa...
void main() { 整数 = 2; 整数 *p = &a; 整数 *q = p++; printf("%d %d ", p, q); 整数 b = p - q; printf("%d", b); } 为什么它打印 1?我试过......
我是第一次在 C 中使用指针。我尝试声明、初始化并将内存地址分配给 3 个指针,然后打印每个指针和变量的地址和值,然后 ...