Tag: 数组

模式组成的数字顺时针方向围绕一个矩形形状(每次减少长度和宽度)

我已经为许多模式编写了代码,但是无法为此编写…..甚至没有任何提示如何继续。 我想生成以下输出: 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9 …将矩形的宽度和高度指定为输入。

将double值转换为C中的char数组

如何在C中将double值转换为char数组? double a=2.132; char arr[8]; 有没有办法在标准C中这样做? 谁能提供任何解决方案?

这看起来不像是一个function。 这是什么?

一位朋友让我在C中编写一个函数来返回一个数组的第100个元素。 我不是很熟悉C,所以我不知道如何制作一个可以用任何类型的数组做到这一点的generics函数,所以我作弊并假设它是一个整数数组并编写了这个函数: int GetHundredthElement(int *array) { return array[100 – 1]; } ( – 1是因为数组是零索引的) 我问他如何制作一个适用于任何类型数组的函数。 他告诉我有一个简单的方法: int GetHundredthElement = 100 – 1; 并且这个“function”可以这样调用: GetHundredthElement[array]; 我尝试了它,但它起作用,但对我来说看起来不像是一个函数,因为它使用括号表示法,这不是函数调用是用C语言编写的。我真的不明白这个代码在做什么或如何它正在做它。 这里发生了什么?

关于C中1元素数组的typedef

有时,在C中,你这样做: typedef struct foo { unsigned int some_data; } foo; /* btw, foo_t is discouraged */ 要在OO-sort-way中使用这种新类型,您可能具有以下alloc / free对: foo *foo_alloc(/* various “constructor” params */); void foo_free(foo *bar); 或者,或者init / clear对(可能返回错误代码): int foo_init(foo *bar, /* and various “constructor” params */); int foo_clear(foo *bar); 我已经看到使用了以下习语,特别是在MPFR库中: struct foo { unsigned int some_data; }; typedef struct foo foo[1]; […]

数组名称不是左值的原因是什么?

例如, int x[10]; int i = 0; x = &i; //error occurs! 根据C – A参考手册 ,数组名称不能是左值。 因此,x不能是左值。 但是,数组名称不能是左值的原因是什么? 例如,为什么第三行会发生错误?

动态增加/减少arrays大小

我正在尝试动态增加数组的大小。 是否有任何标准的C或C ++函数,它会在数组的末尾添加额外的空格或将其删除? 我知道,这很难,因为无法确保堆末端有足够的空间。 但这不应该是操作系统的工作吗?

char * a的strcat问题

包括 #include int main() { char *array[10]={}; char* token; token = “testing”; array[0] = “again”; strcat(array[0], token); } 为什么它会返回分段错误? 我有点困惑。

数组/ arrayname不是指向C中第一个元素的指针吗?

下面的内容是不是arrayname总是指向C中第一个元素的指针? int myArray[10] = {0}; printf(“%d\n”, &myArray); /* prints memadress for first element */ printf(“%d\n”, myArray); /* this prints a memadress too, shows that the name is a pointer */ printf(“%d\n”,sizeof(myArray)); /* this prints size of the whole array, not a pointer anymore? */ printf(“%d\n”,sizeof(&myArray)); /* this prints the size of the pointer */

是否可以在C中使用匿名的ad-hoc数组?

是否可以在C中创建匿名的ad-hoc数组? 例如,假设我有一个名为processArray(int[] array)的函数,它以int数组作为参数,我可以通过以下方式将它传递给匿名数组: int main(){ processArray( (int[]){0, 1, 2, 3} ); //can I create this type of array? return 0; } 或者我必须先声明数组(使用指针),然后将其指针传递给processArray()? 例如: int main(){ int[] myArray = {0, 1, 2, 3}; processArray(myArray); return 0; }

使用指针获取数组的长度

当我只知道指向数组的指针时,有没有办法获得数组的长度? 请参阅以下示例 int testInt[3]; testInt[0] = 0; testInt[1] = 1; testInt[2] = 1; int* point; point = testInt; Serial.println(sizeof(testInt) / sizeof(int)); // returns 3 Serial.println(sizeof(point) / sizeof(int)); // returns 1 (这是来自Arduino Code的一个小贴士 – 对不起,我不“说”真正的C)。