小编n0n*_*hun的帖子

将负值分配给unsigned int时会发生什么?

可能重复:
在C中签名为无符号转换 - 它总是安全吗?

假设我声明了unsigned int类型的变量: unsigned int x = -1;

现在-1的二进制补码(假设32位机器)为0xFFFFFFFF.现在,当我将此值赋给x时,值0x7FFFFFFF是否已分配给x?

如果是这样,则printf("%d",x); 会打印十进制等效的0x7FFFFFFF,对吧?但是,显然这没有发生,因为打印的值是-1.我在这里错过了什么?

编辑:我知道我们可以使用%u格式说明符来打印无符号值.但这无助于回答上述问题.

c unsigned

14
推荐指数
2
解决办法
4万
查看次数

array index and address return same value

#include<stdio.h>
int main(void) {
  int a[3] = {1,2,3};
  printf("\n\t %u %u %u \t\n",a,&a,&a+1);
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

Now i don't get why a and &a return the same value, what is the reasoning and the practical application behind it? Also what is the type of &a and could i also do &(&a) ?

c c++ arrays pointers

8
推荐指数
1
解决办法
899
查看次数

哈希的复杂性

我们如何找出哈希表上搜索操作的平均和最差情况时间复杂度,该操作已通过以下方式实现:

假设'N'是需要进行哈希处理的键数.我们采用大小为M的哈希表(M = alpha*N,alpha~0.1).通过以链式链表方式存储密钥来解决冲突,将每个新条目存储在由'hashTable [i]'指向的每个链表的头部.

恕我直言,最好,平均和最坏情况的复杂性可能是O(1),O(N/M)和O(N).如果我错了,请纠正我.将会有一个详细的解释.

hash time-complexity

7
推荐指数
1
解决办法
9365
查看次数

关于Union的未使用领域

以此代码段为例:

union stack {
    int a;
    float b;
};

union stack overflow;
overflow.a = 5;
Run Code Online (Sandbox Code Playgroud)

当我这样做时,我printf("%d",overflow.b);在gcc和turbo上都得到零.当我这样做时,我printf("%f",overflow.b);在gcc上得到零,在turbo上得到垃圾.

你能解释一下为什么会这样吗?联合中未使用的变量究竟发生了什么?

如果bint,则printf("%d",overflow.b);给出值5.这是为什么?

c unions

3
推荐指数
1
解决办法
203
查看次数

参考地址?

#include<stdio.h>
int main(void) {
int arr[3]={1,2,3};
return 0;
}
Run Code Online (Sandbox Code Playgroud)

现在*(&arr)会给我什么以及为什么?我想要一个详细的解释.不要只告诉我怎么*&抵消:P

我想知道编译器如何解释此表达式以提供所需的结果.

c arrays pointers

1
推荐指数
1
解决办法
87
查看次数

标签 统计

c ×4

arrays ×2

pointers ×2

c++ ×1

hash ×1

time-complexity ×1

unions ×1

unsigned ×1