C C 中字串與指標 效率

2021-06-22 20:41:53 字數 876 閱讀 8927

源c**:

#include int main()

反彙編**:

5:        char *string ="hello world!";

00401028 mov dword ptr [ebp-4],offset string "hello world!" (00422020)

源c**:

#include int main()

反彙編**:

5:        char string ="hello world!";

00401028 mov eax,[string "hello world!" (00422020)] // eax為32位大小 即一次只能儲存4位元組內容,這句即是將hell傳入記憶體。

0040102d mov dword ptr [ebp-0ch],eax

00401030 mov ecx,dword ptr [string "hell world!"+4 (00422024)]

00401036 mov dword ptr [ebp-8],ecx

00401039 mov edx,dword ptr [string "hell world!"+8 (00422028)]

0040103f mov dword ptr [ebp-4],edx

由此可見兩種操作方式,其實現原理並不相同,從彙編角度上來看,使用指標比使用陣列效率更高。

C C 字串,指標

區別處理c語言中char char char char char h 字元 char a hello world char b a b h,指標的指標 char arr 10 陣列裡存放指標 1.結尾字串的值為0x00 0 2.空格字串的值為 空格字元 include include using n...

字元指標與字串

例項1 include using namespace std int main 執行結果 error 例項2 include using namespace std int main 執行結果 helloworld例項3 include using namespace std int main 執...

字串與指標

字元 0 和 0 的區別字元 0 對應的ascii碼為十六進製制30 而 0 即為ascii碼中的0,其對應字元空字元nul。char c 0 char c 0 nul char c 0 char c 48 最典型如memset函式 void memset void buffer,int ch,si...