C/C++ basic

2813 ワード

字面値:uはunsignedlとしてlong例として定義される:-12 u 12 l-12 ul科学カウント:ExFまたはExLF xは10の次数3.14 E 5 F//314000転義を表す:um numは8進数062、16進数xddd文字列:Lはワイド文字L'a'L"a"マルチライン字面値を表す
定義参照:aの参照をbint a=10にする.int &b=a;b++;//a,bはいずれも11と以下の等価int*b=&aである.(*b)++;
反復器:vectorv;for(vector::iterator itr=v.begin();itr!=v.end();itr++) *irt=0;読み取り専用反復器forvector::const_iterator itr=v.begin();itr!=v.end();itr++) cout<<*irt;
配列:初期化:const unsigned array_size = 3; int ia[array_size] = {0, 1, 2}; int ia[] = {0, 1, 2}; 関数体外で定義された配列はデフォルトで初期化され、関数体内で定義された配列は初期化されません(intの場合、初期化は1で、そうでないと不確定な数になります)C++ではvectorを使用することをお勧めします.配列初期化vectorメソッドは、ヘッダアドレスと末尾アドレスの後のvectorvi(ia,ia+3)を提供することです.
ビット操作:
unsigned int int_quiz1 = 0;

int_quiz1 |=1UL<<10;    //   10  1

if(int_quiz1&(1UL<<10)) //   10    1

    cout<<"10 true"<<endl;

int_quiz1 &=~(1UL<<10); //   10  0

//C++     bitset

bitset<13> b(int_quiz1);

b.set(10); 

b.reset(10);

cout<<b.to_string()<<endl;

マシン関連データ型:
ptrdiff_t 2つのポインタ差signed、同じ配列、異なる配列がsize_をオーバーフローする可能性がありますt usignedタイプ
文字列:strncpyの標準的な使い方:(手書きで0)
const char* cp1="1111111111111111111111"; //     const char*,           ,        

const char* cp2="2222222222222222222222";

char largeStr[16 + 18 + 2]={0}; //       ,  strncat   \0  ,            

strncpy(largeStr, cp1, 16); 

strncat(largeStr, " ", 2); 

strncat(largeStr, cp2,17); //       ,    \0    

largeStr[16 + 18+1]='\0';//         

cout<<largeStr; 

なるべくstrncat_を使うsバンドセキュリティモニタリング、オーバーフローは異常を報告します.例えばstrncat(largeStr,cp 2,19)を使用すると直接エラーが報告されます.