デジタルビデオ筆記試験
1027 ワード
昨日デジタルビデオの筆記試験を受けて、それからまた1つの小さい面接で、C/埋め込み式の技師のポストです.
1、リセットプログラム、1つのレジスタのビットを下げて1 ms遅延して、簡単です:
int i;
while(i=0;i<10000;i++)
0x30000000 = (int16_t)0xfffb;
2、式を書き出します
整数を指すポインタ:int*p;整数ポインタを指すポインタ:int**p;整数型のポインタを指す配列、10要素:int*p[10];整数型の10要素の配列を指すポインタ:int(*p)[10];
戻り値intを指し、パラメータのない関数のポインタ:int(*p)();戻り値int、パラメータのない関数を指すポインタの配列、10要素:int(*p[10])();
3,malloc()とcalloc()の違いmalloc():申請空間、メモリ割り当て空間は連続的なサイズの空間であり、サイズはこの関数形パラメータsizeバイトメモリユニットであり、メモリユニットにはタイプがない.calloc():申請空間は、最初のパラメータに指定されたいくつかの小さなブロックであり、空間サイズが一致し、初期値が付与されます.
4、メモリの解放はポインタの消滅を意味しません.逆も同じです.したがって、メモリを解放するときは、ポインタを空にしておくと、野ポインタが発生しやすくなります.
5,配列名は配列ヘッダアドレスを表し,一定の定数であり,演算はできない.C言語では,配列が全体的にデータ処理に関与できず,配列要素を1つずつしか使用できないことが規定されている.
全体的に何の感じもなく、基本的な知識です.やったことのあるプロジェクトを绍介した后、面接のGGは何も闻くことがなくて、あまり准备していないような気がして、囧.たとえ私が遊びに来たとしても、そうすべきではないでしょう.どうして私はまだ本を読んでいますか.の
1、リセットプログラム、1つのレジスタのビットを下げて1 ms遅延して、簡単です:
int i;
while(i=0;i<10000;i++)
0x30000000 = (int16_t)0xfffb;
2、式を書き出します
整数を指すポインタ:int*p;整数ポインタを指すポインタ:int**p;整数型のポインタを指す配列、10要素:int*p[10];整数型の10要素の配列を指すポインタ:int(*p)[10];
戻り値intを指し、パラメータのない関数のポインタ:int(*p)();戻り値int、パラメータのない関数を指すポインタの配列、10要素:int(*p[10])();
3,malloc()とcalloc()の違いmalloc():申請空間、メモリ割り当て空間は連続的なサイズの空間であり、サイズはこの関数形パラメータsizeバイトメモリユニットであり、メモリユニットにはタイプがない.calloc():申請空間は、最初のパラメータに指定されたいくつかの小さなブロックであり、空間サイズが一致し、初期値が付与されます.
4、メモリの解放はポインタの消滅を意味しません.逆も同じです.したがって、メモリを解放するときは、ポインタを空にしておくと、野ポインタが発生しやすくなります.
5,配列名は配列ヘッダアドレスを表し,一定の定数であり,演算はできない.C言語では,配列が全体的にデータ処理に関与できず,配列要素を1つずつしか使用できないことが規定されている.
6,strcat
およびstrcpy
には同様の問題があり、呼び出し者はdest
バッファが十分に大きいことを確保しなければならない.そうしないと、バッファオーバーフローエラーを引き起こす.しかし、VCはメモリの境界を越えることを示しません.全体的に何の感じもなく、基本的な知識です.やったことのあるプロジェクトを绍介した后、面接のGGは何も闻くことがなくて、あまり准备していないような気がして、囧.たとえ私が遊びに来たとしても、そうすべきではないでしょう.どうして私はまだ本を読んでいますか.の