C語学コース体験(5)

アレイの基本的な知識

char arr [] = {0}; //正しい
chararr [] = ""; //正しい
chararr [10] = "";
char arr [10]; //正しい
chararr []; //エラーの
概要:配列を正しく表現したい場合
1.サイズを指定するか指定しないように配列を初期化します
2.初期化しない場合は、配列サイズを指定する必要があります
〜:数値は値〜0のビット単位の反転です
(intタイプ4バイト32ビット)
= 〜00000000000000000000000000000000
= 11111111111111111111111111111111
= -1
//複素数はバイナリ補数としてメモリに格納され、最上位ビットは符号ビット、0は正、1は負で
あり、この番号の元のコードが出力されます。
計算式:originalコード符号ビットは変更されず、残りはビットごとに反転されて反転コードが取得されます。補完コード
として保存すると、シーケンスを反転して元のコードを取得し、最終的に出力するために上記のプロセスのみが必要になるため、逆コード+1が補完コードになります
。11111111111111111111111111111111(補完コード)-1
= 111111111111111111111111111111110(反転コード)符号ビットは変更されず、残りのビットはビットによって反転されます
= 1000000000000000000000000001(元のコード)
= -1(出力結果)
例:
〜5
= 〜00000000000000000000000000000101
= 11111111111111111111111111111010(補完コード)
= 11111111111111111111111111111001(逆コード)
= 10000000000000000000000000000110(元のコード)
=-6

++および-:
++ i(最初の+)++ i(最後に追加)
#include <stdio.h>

int main(){
int i = 0;
printf( "%d \ n"、i); // 0
printf( "%d \ n"、++ i); // 1
printf( "%d \ n" 、i); // 1
printf( "%d \ n"、i ++); // 1
printf( "%d \ n"、i); // 2
return 0;
}
強制タイプ変換:
int i =(int )3.14; //タイプ
&& ||と&|の前後で同じである違い:
&&と||は論理シンボルです:
3 && 2 = 1;
0 && 2 = 0;
3 || 2 = 1;
3 || 0 = 1;
&and |シンボルを計算するには:
3&2 = 0011&0010 = 0010 = 2三次
演算子:
(1)?(2):( 3)//(1)が真の場合(2)(1)が偽の場合(3)
num =(1 <2)?1:2; // numは1です。
例:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int a = 2;
(a == 2)?(A = 4 ):(a = 10);
printf( "%d \ n"、a); //出力は4です
0を返します。
}
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int a = 3;
(a == 2)?(a = 4):( a = 10);
printf( "%d \ n"、a); //輸出輸出10return
0;
}

キーワードを登録する

使用法:
register int a = 10; // aをレジスタ変数として定義することをお勧めします(レジスタの実行速度はメモリよりもはるかに高速です)。レジスタスペースが限られているため、選択することをお勧めします。

typedefキーワード(タイプ定義/タイプ再定義)

たとえば、符号なし整数の変数定義:
unsigned int型のNUM = 10;
が、unsigned int型が長すぎる、あまりにも面倒に感じている、あなたは再定義にtypedefを使用することができます
使用:
typedefをunsigned int型u_int; //これはu_intにunsigned int型に変わります
unsigned int型num = 10; u_int num = 10と同等;
注:
新しく定義された単語は単語である必要がありますu_intはu int(2単語)にすることはできません

静的キーワード

変数または関数を静的にする
#define_CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
void test(){
int a = 10;
++ a;
printf( "%d \ n"、a);
}
int main()
{
int i = 0;
while(i <5){
test();
++ i;
} return0
;
}
結果は5です11
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
void test(){
static int a = 10;
++ a;
printf( "%d \ n"、a);
}
int main()
{
int i = 0;
while(i <5){
test();
++ i;
}
return 0;
}
結果は
1112 13 14 15結論:静的がローカル変数を変更すると、変数サイクルが長くなります
つまり、この変数の値は、関数がここで呼び出されたときに再初期化されません。

外部機能

使用法:
extern int a; // aは他の.cファイルのグローバル変数です(staticはグローバル変数を変更します)が、
現時点でaがstatic int a = 10の場合、他のファイルのmain関数をextern(継承)することはできません変数。
静的に変更された関数は変数と同じです。
externは、外部関数を宣言します
。externint hanshu(int、int); // mainの内部または外部で呼び出される限り、どこにいても宣言します。

define定数とマクロを定義します

#define MAX 100(constant)
#define MAX(X、Y)((X> Y)?X:Y)(macro)// MAX(X、Y)は、次の三眼式と同等であり、パラメータタイプを指定する必要があります

おすすめ

転載: blog.51cto.com/15079723/2590396