我正在为二分搜索算法编写代码。
代码:
#include "cs50.h"
int main(void) {
int n = GetInt();
int value = GetInt();
int values[n];
for (int i = 0; i < n; i++) {
printf("Put in number %i ", i + 1);
values[i] = GetInt();
}
int mid = (n - 1) / 2;
int en = 0;
int ex = n - 1;
for (int i = 0, xt = i + 1; i < xt; i++) {
if (value > values[mid]) {
en = mid; …Run Code Online (Sandbox Code Playgroud) #include <stdio.h>
int main(void)
{
int i = 3;
int* j = &i;
printf("%u",j);
}
Run Code Online (Sandbox Code Playgroud)
上面的代码应该打印出包含整数3的内存块的地址(一个无符号整数)。但我却收到了这个错误
error: format specifies type 'unsigned int' but the argument has type 'int *'- 。
我从各种来源确认:
1.*j指“存储在 j 中的地址处的值”
2.&j指存储指针 j 的内存块的地址。
3. j 包含一个 unsigned int 值,它是 j 指向的内存块的地址。