C言語を学ぶ4日目(基本)

sizeof()タイプの長さを計算し
ますint a = 10;
int arr [] = {1、2、3、4、5、6}; []はこの配列の番号であり、番号は後ろから取得できます{}
書けない【数】を知っている

printf( "%d \ n"、sizeof(a));これは整数であるためaのサイズは4バイトです
printf( "%d \ n"、sizeof a);上記のsizeof()と同じです内部の文字は書き込めません()
printf( "%d \ n"、sizeof(int));計算されるのは、整数のサイズが4バイトであるということです。ここで()は
printf( "%d '\ n "、sizeof(arr));計算されるのは、この配列の数値が4バイトで、6つの数値が24バイトであるため、この配列全体のサイズは24です
。printf("%d \ n "、sizeof( arr)/ sizeof(arr [0])出力6
C言語を学ぶ4日目(基本)

〜(バイナリ)ビットで反転
int a = 04バイト32ビット000000000000000000000000000000000000000000000000000000
バイナリの最初の数値は符号ビットと呼ばれます

int b = 〜ab符号付き整数、符号ビットのビット反転によって呼び出され、最前線と呼ばれます+1は0または1-111111111111111111111111111111111111111111負の値がメモリに格納されている場合、
元のコード逆補数コード
、バイナリに格納されます元のコードを補完するものが印刷されます
b前面の内側のバイナリコードは負である1であり
、アンチコードとアンチ補完コードの関係で補完される場合に格納されます+1補数コードと反転コードと元のコードは反転されますが、フロント番号は変更されません。

メモリに格納されている整数がバイナリ補数で
ある限り、一次反補数3ヤード均一
ネガティブは
printf( "%d"、b )出力-1です。

C言語を学ぶ4日目(基本)

++追加前および追加後
inta = 10
int b = a ++追加後および追加、最初に使用、次に追加
printf( "a =%db =%d \ n"、a、b)出力は次のとおりです。 11 10

int b = ++ aが++の前にある場合は、最初にそれを追加してから、出力1111を使用します。

int b = a ---減算後の出力
910 int b =-減算前の出力99

(タイプ)強制変換
int a = 3.14 int a =(int)3.14
return 0はエラーを報告しますが、ここではエラーはありません。これは、強制変換が3.14を整数に変換することを意味します。

C言語を学ぶ4日目(基本)

リレーショナル演算子
<=> =!= ==は
、不平等をテストして平等をテストするために使用されます

C言語を学ぶ4日目(基本)

論理演算子
&&論理
ANDint a = 3
int b = 5
int c = a && b aが真bも真であるためcが真であるため、出力Cは1に等しい
||論理OR

int c = a || baが真またはbが真、cが直接真、cが1
C言語を学ぶ4日目(基本)

条件演算子
exp1?exp2:exp3これはexp1?の場合の式全体です。trueの場合、exp2を実行した結果は、式全体の結果になります。
これも3値演算子です。exp1?falseの場合、exp3を実行した結果は、式全体の結果です。inta
= 10
int b = 20
int max = 0
if(a> b)ifの後のことは、直接max =(a> b?a; b)のようになります。 )
max = a
else;
max = b
C言語を学ぶ4日目(基本)

カンマ式
exp1、exp2、exp、。expN

添え字参照関数呼び出しと構造メンバー
[]()、->
int arr [10] = {0}
arr [4]添え字参照演算子
intadd(int x、int y)
int z = 0
z = x + y
return z
int a = 10
int b = 20
int sum = add(a、b)関数addと呼ばれる
C言語を学ぶ4日目(基本)

一般的なキーワードで定義されたシンボルは、キーワードと競合できません(規定)
自動(自動)ブレークケースchar const続行デフォルト(デフォルト)do double else enum extern(外部シンボルの導入)float for goto if int long reguster(register)return静的構造(構造キーワード)の短い符号付きサイズスイッチtypedef(定義)union(union、union)unsigned void volatile while

auto
int a = 1その前にautoがあります。つまり、整数型aはこの{}に自動的に表示され、その後自動的に消えます。intの前にautoがあると思うので、
breakは省略されます。これは、ループステートメント
レジスタレジスタ
int a = 1でよく使用されます。これは、将来的に使用されるためです。よく使うので、レジスターに入れてレジスター変数
レジスターにしたいint a = 1現時点では、レジスターに入れることをお勧めしますが、レジスターにあるかどうかはコンパイラーによって異なります。

int定義変数はsignedint intであり、symbolsは
signedと同等
です。unsignedinta= 2 ^ 32 -1と書くと、負の場合でも通常は省略されますが、負の場合はunsignedunsignedと記述します。番号は、保存時に元のコードに保存されていることです。

typedefタイプ定義-タイプ再定義
unsignedint a = 1
はtypedifunsigned int u int
u int a = 1として記述できます。これ以降、すべてのunsignedint
C言語を学ぶ4日目(基本)
はローカル変数の変更後にuint staticとして直接記述でき、ローカル変数のライフサイクルは変更後に長くなります。
変更後変更されたグローバル変数グローバル変数スコープが小さくなる
変更関数が外部から内部リンク属性に変更された後のリンク属性を変更する
linkattribute void Test()
{
staticint。1a= aは静的ローカル変数
a ++
printf ( "A =%d \ n"、a)
int main()
{
int i = 0
while(i <5)
{
test()
i ++
}
return 0
}

静的がない場合、出力は2 2 2 22静的23 4 5 6
静的ローカル変数は、それらがまだ存在し、スコープ外になった後も破棄されないことを意味します。
C言語を学ぶ4日目(基本)

これでC ++を構築するためのソースファイルの内部には、グローバル変数がマークされ
、同じソースファイルから得ることができるよう、他のC ++の内部に= 10をint型
に長いそれを使用することができます戦いにextern intとしてとして
C ++内のプレイでは
、静的int型、A = 10
静的グローバル変数のスコープが縮小されているために使用できない別のc ++ソースファイルを使用します

関数AddでマークされたC ++内のソースファイルを
同じソースファイルのinside()
ビルドするには、extern int Add()とマークされた別のC ++を使用できます。その後、関数を静的としてマークしたC ++ソースファイルをビルドします。 ()を追加し
使用することはできません)(別のC ++のextern int型の追加をマークし、同じソースファイルにした後、
関数の静的プロパティは、リンクを変更するので、

defineは識別子定数を
定義します
definemax 1000 difineはマクロを定義できます-パラメータを
使用してdefineADD (x、y)((x)+(y))マクロは関数に似ていますが、異なります

printf( "%p \ n"、&a)印刷アドレスは、16進数の
int a = 10
int p =&aを出力します。この種類の変数は、アドレスを格納するために使用されるポインターです。変数
int
は、型
逆参照演算子
pペアです。 p逆参照操作は、
pが指すオブジェクトを見つけます* p = 20は、pが指す値を20に変換します


32ビットの番号付きメモリには2 ^ 32の番号付きバイナリ番号があります。つまり
、64ビットの番号には2 ^ 64の番号付きバイナリ番号があります。

小さなグリッドサイズ内のメモリがその数を超えるバイト数である場合
inta = 10サイズが4バイトである場合、それらは4バイトのメモリを占有し、
そのにアドレスの数が含まれます。 4バイトの最後のバイトの番号です

おすすめ

転載: blog.51cto.com/14982478/2545539