for循环的判定实现??

这是一个打印字符数组和字符指针变量的程序

 #include<stdio.h>
#include<stdlib.h>
#include<string.h>

int main()
{
    int i;
    char str[] = "ABC";
    char *ptr = "123";
    for (i = 0; str[i]; i++)
    {
        putchar(str[i]);
    }
    putchar('\n');
    for (i = 0; ptr[i]; i++)
    {
        putchar(ptr[i]);
    }
    putchar('\n');

    printf("str=%s\n", str);
    printf("ptr=%s\n", ptr);

    system("pause");
    return 0;


}

在for循环中,是如何判定不超过数组和变量的大小范围的?

字符串的之后有一个结束字符。‘\0’ = 0
你可以看到i循环到3,从0开始 4个字符

仔细看for函数各个参数的含义啊

字符串一般都以'\0'结束的,利用这个不就可以了
//………………
while(*p != '\0'){ }
//………………

 char source[] = {"123.txt"};
    int nLen = sizeof(source);
    char *pStr = &source[0];
    while(pStr != "\0")
    {
        *pStr ++;
    }