久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      C 語言中單引號與雙引號的區(qū)別

      今天看了《C陷阱與缺陷》中對 “” 的描述, 引起的一個字符代表一個整數(shù),整數(shù)值對應(yīng)于該字符在編譯器采用的字符集中的序列值。

      “” 引起的字符串代表的是一個指向無名數(shù)組起始字符的指針。對這兩個符號產(chǎn)生了興趣,遂打開 VS2010 查看了單引號、雙引號引起的字符在內(nèi)存中的存儲形式。

      實驗方式很簡單,分別查看 “yes”/’yes’/’ye’/’y’ 四種字符在內(nèi)存中的存儲形式,代碼如下:

      int _tmain(int argc, _TCHAR* argv[])  {      char test1[] = "yes";      int test2 = 'yes';      printf("%xn", &test2);      int test3 = 'ye';      printf("%xn", &test3);      int test4 = 'y';      printf("%xn", &test4);      return 0;  }

      實驗結(jié)果如下:

      C 語言中單引號與雙引號的區(qū)別

      根據(jù)內(nèi)存中的存儲形式,發(fā)現(xiàn) 引起的字符串按照整數(shù)的存儲形式,將第一個字符識別為最高位,最后一個字符識別為最低位,按此順序存入 int 變量 4 個字節(jié)的存儲空間中;

      “” 引起的變量按照第一個字符存儲在起始地址處,最后一個字符存儲在結(jié)束地址處。

      實驗的結(jié)果證實了《C陷阱與缺陷》中的描述,那么當(dāng) 引起的字符超過 4 個字節(jié)時會出現(xiàn)什么情況呢?再進(jìn)行一次實驗,代碼如下:

      int _tmain(int argc, _TCHAR* argv[])  {      char test1[] = "yes";      int test2 = 'yes';      printf("%xn", &test2);      int test3 = 'ye';      printf("%xn", &test3);      int test4 = 'y';      printf("%xn", &test4);      int test5 = 'yesa';      printf("%xn", &test5);      return 0;  }

      實驗結(jié)果如下:

      C 語言中單引號與雙引號的區(qū)別

      根據(jù)實驗結(jié)果可以看到字符超過 4 個字節(jié),超出了 int 型存儲能力,編譯器報錯,提示常量字符太多。這樣可以有效提醒給程序猿同學(xué),有可能存在符號輸入錯誤,但是沒有超過 int 型存儲能力時照單全收,沒有任何提示,存在著符號誤用的隱患,以后程序出現(xiàn)問題調(diào)試會相當(dāng)麻煩。

      原文地址:https://blog.csdn.net/u013541620/article/details/43172891

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號