相关疑难解决方法(0)

数组名称是指针吗?

数组的名称是C中的指针吗?如果没有,数组的名称和指针变量之间有什么区别?

c arrays pointers

191
推荐指数
4
解决办法
6万
查看次数

为什么数组的地址等于它在C中的值?

在下面的代码中,指针值和指针地址按预期不同.

但数组值和地址不行!

怎么会这样?

产量

my_array = 0022FF00
&my_array = 0022FF00
pointer_to_array = 0022FF00
&pointer_to_array = 0022FEFC
Run Code Online (Sandbox Code Playgroud)
#include <stdio.h>

int main()
{
  char my_array[100] = "some cool string";
  printf("my_array = %p\n", my_array);
  printf("&my_array = %p\n", &my_array);

  char *pointer_to_array = my_array;
  printf("pointer_to_array = %p\n", pointer_to_array);
  printf("&pointer_to_array = %p\n", &pointer_to_array);

  printf("Press ENTER to continue...\n");
  getchar();
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

c arrays pointers

179
推荐指数
5
解决办法
7万
查看次数

C:地址运算符 (&amp;) 是生成指针(地址 + 类型)还是仅生成地址?

我读过的关于地址运算符的大部分内容&,都说它用于获取地址 - 地址。不过,我最近听到它的描述有所不同,因为它产生了一个成熟的指针。

鉴于以下 C 代码,

int i1 = 5;
int *p1;

p = &i1;
Run Code Online (Sandbox Code Playgroud)

我的理解是通过存储存储数据的地址来p1引用 int并记住该位置中的数据将被解释为 an (这决定了要读取的字节数以及如何解释读取的数据)。5i1int

地址运算符是否同时产生地址和“类型感知”,或者类型感知是否只是隐含的,因为它p1被声明为int指针?

让我对此感到疑惑的一件事是看到如下代码:

void myFunc(int *ptr);

int i = 5;
myFunc(&i);
Run Code Online (Sandbox Code Playgroud)

c pointers memory-address

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

标签 统计

c ×3

pointers ×3

arrays ×2

memory-address ×1