我正在通读Stroustrup的PPP的第10章和他在读取文件时使用的示例:
http://www.c-jump.com/bcc/c155c/c155Stxtbook2nd/Chapter10/chapter_10_11_2_cpp.htm
当他读温度时,我注意到他用的是char ch1;和char ch2;
然而,当他阅读这个月的时候,我看到他做了char ch = 0;
我想知道,当char ch = 0;在前面的函数中没有这样做时,初始化他的目的是什么?这有什么不同吗?
发布于 2020-11-04 09:05:12
与0x00或\0对应的字符通常表示字符串的结尾。这是当您听到诸如“以null结尾的字符串”之类的内容时所暗示的字符。
当使用像strlen这样的函数扫描字符串时,这是告诉函数它已到达末尾的信息。
这就是说,看看你的链接,我看不出有什么特别的理由在月份检测中初始化它为0,而不是在其他函数中。在每种情况下,看起来ch都是使用流中的值提供的……当然,初始化变量是一件好事,但我敢说这并不总是必要的。
发布于 2020-11-04 09:16:07
没什么原因。这段代码不是一个很好的编码风格的例子。参数可以是双向的:一方面,即使你打算重新初始化变量,初始化变量也是一种很好的做法;另一方面,为什么要花费(甚至是去最小化)资源做一些永远不会用到的事情(尽管编译器可能会检测到这一点,无论如何都会跳过初始化)。
但是,在同一个文件中混合使用这两种方法,除非完全是为了展示两种可能性,否则会让人感到困惑。
https://stackoverflow.com/questions/64672926
复制相似问题