The C Programming Language学習ノート

1520 ワード

  • 単一引用符の文字は、マシン文字セットに対応するこの文字の数値に等しい整数を表し、文字定数と呼ばれます.しかし、彼は小さな整数数の書き方にすぎない.例えば、「A」は文字定数であり、ASC文字セットではその値が65(すなわち、「A」の内部表現値が65)である.もちろん、「A」の意味がより明確であるため、「A」は65よりも良い.
  • 練習問題1-8
    Exercise 1-8 
    Write a program to count blanks, tabs, and newlines. 
    
    #include <stdio.h>
    
    int main(void)
    {
      int blanks, tabs, newlines;
      int c;
      int done = 0;
      int lastchar = 0;
    
      blanks = 0;
      tabs = 0;
      newlines = 0;
    
      while(done == 0)
      {
        c = getchar();
    
        if(c == ' ')
          ++blanks;
    
        if(c == '\t')
          ++tabs;
    
        if(c == '
    ') ++newlines; if(c == EOF) { if(lastchar != '
    ') { ++newlines; /* this is a bit of a semantic stretch, but it copes * with implementations where a text file might not * end with a newline. Thanks to Jim Stad for pointing * this out. */ } done = 1; } lastchar = c; } printf("Blanks: %d
    Tabs: %d
    Lines: %d
    ", blanks, tabs, newlines); return 0; }
    その中のlastchar!=''ファイルがnewlineで終わっていない場合は、この行もnewlinesに追加すべきだという意味です.しかしubuntu下の端末では、新しい行が起きなければctrl+D(windowsでctrl+zを使用)でEOFを入力することができず、「」で終わらないこともありません.しかしパイプで読めば、最後の行は「」で終わらない点でリンクを開くことができます.そのために「」を検討しましたが、具体的な研究結果はここ
  • を参照してください
  • c言語伝達パラメータは値伝達を採用し,実パラメータを修正するには伝達ポインタが必要である.配列名をパラメータとして使用すると、渡された配列の先頭要素の位置やアドレスは、配列自体をコピーせず、呼び出された関数では、配列の下付き文字で配列要素の値にアクセスしたり変更したりすることができます.