while里面是什么意思呢 求详细解析

#include <stdio.h>
void main()
int a[8]={ 4,8,12,16,20,24,28,32};
int *p=a;
do

printf("%d ",*p);
p+=2;

while(p<a+8);
printf("\n");

指针p指向的是数组第一个元素位置,所以所以里面的意思就是指针指向的位置小于数组第一个元素的地址往后八个位置,也就是只要指向前八个位置都是可以的

while里面主要是判断 变量p的值 是否小于 变量a+8 的值。当这个结果为truedo-while循环就会继续.

我认为有2个注意点地方,

  1. do-while循环
    C do…while 循环 | 菜鸟教程 C do...while 循环 C 循环 不像 for 和 while 循环,它们是在循环头部测试循环条件。在 C 语言中,do...while 循环是在循环的尾部检查它的条件。 do...while 循环与 while 循环类似,但是 do...while 循环会确保至少执行一次循环。 语法 C 语言中 do...while 循环的语法: do { statement(s); }while( condition .. https://www.runoob.com/cprogramming/c-do-while-loop.html
  2. 运算符的优先级,< + 存在的时候应该先计算哪一个.
    C 运算符 | 菜鸟教程 C 运算符 运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。C 语言内置了丰富的运算符,并提供了以下类型的运算符: 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 杂项运算符 本章将逐一介绍算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符和其他运算符。 算术运算符 下表显示了 C 语言支持的所有算术运算符。假设变量 A 的值为 10,变量 B 的值为 20,则: 运算符描述实例 +把两个操作数相加 .. https://www.runoob.com/cprogramming/c-operators.html

img


.

p每次加一,就像后面移动一个指向。
.

img


.
因此,这里的 p<a+8 的意思是,当前遍历到的位置在 a 数组之内。
如果 p > a + 8 了,则表示a数组的所有元素已经遍历完了。