C语言基础学习视频勘误整理


视频地址:B站搜索UP主:诸葛借剑,在“我的视频”里面,视频名:“C语言基础学习”。

视频链接:https://www.bilibili.com/video/BV18k4y1q7rx
C语言基础学习视频勘误整理文章地址:

我的视频里面有一些错误,在这篇文章里进行指出更正,欢迎大家指出错误。如果大家发现了其他的错误,可以私信我,我将在这篇文章里进行更新。

同时也希望发现错误的大家可以再错误处发弹幕指出错误,可以正确指引其他人,尽量避免一些误解。

P5 语句,判断与循环

  1. 55:40 处:第40行

应该将if语句写在 sum += i; 下面。
应该先加在sum上,在进行判断。

  1. 55:44 处:第40行

    视频中:i == 50

    更改为:i == 51

for( i = 0 ; i <= 100 ; i++)
{
      if(i == 50)          
            break;
      sum += i;
// 这里i == 50 的时候直接break了
//是从0 加到49,sum 并没有加上50,
//解决方案:将50更改为51或者将 sum += i 放在if语句前面。
}

  1. 57:44处

应该是1加到45,而不是46,总和会大于1000。
因为break的时候i是46,最后sum加的是45。

应该将if语句写在 sum += i; 下面。
应该先加在sum上,在进行判断。

P6 指针

  1. 25:46 处:

    视频中:0060FEF3是是char型变量ch的值,同时也是指针变量pch的地址。

    更改为:0060FEF3是是char型变量ch的地址,同时也是指针变量pch的值。

P10 函数与数组与指针

  1. 47: 06 处:

    char c[] = "sddfhjgffhd";//这里数组c总共有12个元素,最后一个d后面还有一个'\0'
    for(int i = 0 ; i < sizeof(c) / sizeof(c[0]);i++){
        // 这里的sizeof(c) == 12,sizeof(c[0]) == 1,sizeof(c) / sizeof(c[0]) == 12
        // 那么这里的for循环将从's'遍历到'\0'
        // 因为'\0'是结束符,没有打印出来,所以结果和正确的一样。
        // 如果只想遍历到最后一个d,循环的判断条件可以写成: 
        // i < sizeof(c) / sizeof(c[0]) - 1
        printf("%c",c[i]);
    }
    
    
    // 如果数组c是这样定义的:
    char c[] ={'s','d','d','f','h','j','g','f','f','h','d'};
    // 这里的sizeof(c) == 11,sizeof(c[0]) == 1,sizeof(c) / sizeof(c[0]) == 11
    // 循环的判断条件写成 i < sizeof(c) / sizeof(c[0]) 是完全正确的。
    // 因为这里没有'\0',最后一个字符就是'd'
    
C