c - 解释以下 Turbo C 代码中如何以及为何使用指针

标签 c pointers turbo-c

int a[10],sum,*p;
sum=0;
for(p=&a[0];p<&a[10];p++)
    sum += *p;
printf("%d",sum)

嗨,我是 Turbo C 的新手,尤其是指针。有人可以向我解释一下这个程序中如何使用指针吗?预先感谢您。

我知道程序是如何工作的,但我不明白的是为什么程序使用指针和“&”符号。谢谢。

最佳答案

这是 C 语言中指针的说明性示例,但是也可以在不使用指针的情况下编写此代码。 这里

p=&a[0]

^ 存储数组a第一个值的内存地址。 For 循环将执行,直到指针存储最后一个数组值的内存地址,即 a[10]

sum += *p;

上述语句中*p中的

^代表指针p指向的内存地址的值。例如,p 当前指向 a[0]。然后a[0]的值将被添加到sum中。 在 For 循环的下一次迭代中,p 的值增加,并将指向 a[1]

关于c - 解释以下 Turbo C 代码中如何以及为何使用指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15184347/

相关文章:

c - 如何创建一个解释器来在 Flex/Bison 中打印字符串

c++ - weak_ptr 包含哪些变量?

c++ - 为什么 turbo c wraparound signed integer overflow 每次虽然有符号整数溢出是未定义的?

c - 可恢复处理器故障

mysql - 执行sql语句

c++ - 从 wglUseFontOutlines 获取积分?

c - c中带有char指针的二维数组

C 程序在记录之前退出

python - Numpy - 引用单个元素时保留指针

c - 将指针常量初始化为另一个指针常量内的字段?