【发布时间】:2016-10-12 14:53:55
【问题描述】:
int num = 78;
int *p;
int array[SIZE] = {0,1,2,3,4};
char c[SIZE] = {'A', 'B', 'C', 'D', 'E'};
p = array[3];
*p = (int) *c;
p++;
array[4] = num;
p++;
p = c;
p++;
我正在尝试找出上述代码背后的内存。我知道指针 p 最初指向数组的第三个元素(即 3)。我不知道下一行 *p = (int) *c;方法。谁能解释一下那行代码??
编辑: 在 p 这样递增之后,任何人都可以解释它指向什么吗?
【问题讨论】:
-
那会崩溃。你想要
p = &array[3];或p = array + 3;。 -
Find a good beginners book 并阅读有关数组和指针的章节。
-
“我知道指针 p 最初指向数组的第三个元素”。不,您尝试为
p赋值是无效的。
标签: c memory heap-memory