Tag: 数组

指针数组的大小

我对sizeof运营商有疑问 代码1: int main() { int p[10]; printf(“%d”,sizeof(p)); //output — 40 return 0; } 代码2: int main() { int *p[10]; printf(“%d”,sizeof(*p)); //output — 4 return 0; } 在第一个代码中,p指向一个int数组。 在第二个代码中,p指向一个指针数组。 我无法理解为什么第一个代码o / p是40但第二个代码o / p是4认为两者都指向相同大小的数组?

如何在C / C ++中编写简单的整数循环缓冲区?

我看到很多模板和复杂的数据结构用于实现循环缓冲区。 如何为5个数字编码一个简单的整数循环缓冲区? 我在想C是最直截了当的吗? 谢谢。

如何在c中查找char数组的长度

我想找到这个的长度: char *s[]={“s”,”a”,”b”}; 它应该用/ 0计数4但是strlen或sizeof(s)/ sizeof(char)给了我错误的答案..我怎么能找到它?

C – array ++ vs array 中的数组增量类型

我想知道array[i]++和array[i++]什么区别,其中array是一个int array[10] ?

C风格字符串,指针,数组

我无法理解C风格的字符串是什么。 新年快乐 我所知道的:指针包含一个内存地址。 取消引用指针将为您提供该内存位置的数据。 int x = 50; int* ptr = &x; //pointer to an integer, holds memory address of x cout << "&x: " << &x << endl; //these two lines give the same output as expected cout << "ptr: " << ptr << endl; cout << "*ptr: " << dec << (*ptr) << […]

为什么指向指针的指针与指向数组的指针不兼容?

好吧,我无法理解指针与指向数组指针的指针。 请考虑以下代码: char s[] = “Hello, World”; char (*p1)[] = &s; char **p2 = &s; printf(“%c\n”, **p1); /* Works */ printf(“%c\n”, **p2); /* Segmentation fault */ 为什么第一个printf工作,而第二个不工作? 根据我的理解,’s’是指向数组第一个元素的指针(即’H’)。 因此将p2声明为char **意味着它是指向char的指针。 使它指向’s’应该是合法的,因为’s’是指向char的指针。 因此解除引用它(即** p2)应该给出’H’。 但事实并非如此!

指向C中的const字符串的指针

char *p = “string”; //creates pointer to constant string char p[] = “string”; //just an array with “string” 我只是有点困惑为什么在第一个例子中创建一个指向常量字符串的指针? 它不应该只是一个指针指向内存中有“字符串”的地方吗?

C hack用于存储占用1位空间的位?

我在0到67600之间有一长串数字。现在我想使用长度为67600个元素的数组存储它们。 如果数字在集合中,则元素设置为1;如果数字不在集合中,则设置为0。 即。 每次我只需要1位信息来存储一个数字。 C / C ++中是否存在帮助我实现这一目标的黑客攻击?

为什么数组变量的地址与它自身相同?

在C中,如果我们有一个类似a[10]的数组,则a和&a具有相同的指针值(但不是相同的类型)。 我想知道为什么C这样设计? 这是为了节省存储所需的额外空间吗? ……当你想到a永远不会指向任何其他位置的事实时,这是有道理的,所以存储&a是没有意义的。

如何打印arrays?

int main() { int my array[3][3] = 10, 23, 42, 1, 654, 0, 40652, 22, 0 }; printf(“%d\n”, my_array[3][3]); return 0; } 我无法打印arrays..任何想法为什么? 我是一名初学程序员,所以任何建议的话都会受到赞赏。