<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>C&#43;&#43; on Dai Chao</title>
    <link>https://daichao1997.github.io/tags/c&#43;&#43;/</link>
    <description>Recent content in C&#43;&#43; on Dai Chao</description>
    <generator>Hugo</generator>
    <language>zh-cn</language>
    <lastBuildDate>Fri, 26 Oct 2018 00:00:00 +0800</lastBuildDate>
    <atom:link href="https://daichao1997.github.io/tags/c++/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>C&#43;&#43;查漏补缺</title>
      <link>https://daichao1997.github.io/posts/tech/2018-10-26-c&#43;&#43;%E6%9F%A5%E6%BC%8F%E8%A1%A5%E7%BC%BA/</link>
      <pubDate>Fri, 26 Oct 2018 00:00:00 +0800</pubDate>
      <guid>https://daichao1997.github.io/posts/tech/2018-10-26-c&#43;&#43;%E6%9F%A5%E6%BC%8F%E8%A1%A5%E7%BC%BA/</guid>
      <description>&lt;p&gt;我已经不怎么记得“程序设计实习”的内容了。&lt;/p&gt;
&lt;h2 id=&#34;c与c的细微区别&#34;&gt;C与C++的（细微）区别&lt;/h2&gt;
&lt;h3 id=&#34;c支持但c不支持&#34;&gt;C++支持，但C不支持&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;面向对象&lt;/li&gt;
&lt;li&gt;重载、模板、继承、虚函数、友元函数&lt;/li&gt;
&lt;li&gt;语言层面上的异常处理&lt;/li&gt;
&lt;li&gt;引用&lt;/li&gt;
&lt;li&gt;输入输出流&lt;/li&gt;
&lt;li&gt;new/delete/explicit/class等关键词&lt;/li&gt;
&lt;li&gt;结构体中定义成员函数&lt;/li&gt;
&lt;li&gt;结构体中定义静态变量&lt;/li&gt;
&lt;li&gt;直接在结构体中初始化成员变量&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;c支持但c不支持-1&#34;&gt;C支持，但C++不支持&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;调用尚未声明的函数&lt;/li&gt;
&lt;li&gt;将const的地址赋给non-const指针&lt;/li&gt;
&lt;li&gt;将void*值直接赋给其他指针，malloc()返回的就是void*&lt;/li&gt;
&lt;li&gt;不初始化const&lt;/li&gt;
&lt;li&gt;&lt;code&gt;char *c = 333&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;其他&#34;&gt;其他&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;C认为func()=func(&amp;hellip;)，即func可以接受任意个数的参数。C++认为func()=func(void)，即func不能接受参数。因此在C中使用func(void)会显得你更专业、更严谨&lt;/li&gt;
&lt;li&gt;C认为字面字符常量是整数，C++则认为是字符。&lt;code&gt;sizeof(&#39;a&#39;)&lt;/code&gt;，前者得到4，后者得到1&lt;/li&gt;
&lt;li&gt;C的结构体类型必须带上struct前缀。&lt;code&gt;struct T; T a;&lt;/code&gt;是不合法的C代码，但C++认为没问题&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sizeof(1==1)&lt;/code&gt;的C值为4，C++值为1，因为C++支持bool类型&lt;/li&gt;
&lt;li&gt;空结构体的sizeof值在C是0，在C++是1&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;引用和指针的区别&#34;&gt;引用和指针的区别&lt;/h2&gt;
&lt;p&gt;总地来说，引用不如指针灵活，但更安全。引用值必须&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
