筆試題 同樣的字串存放的位置不同

2021-08-08 07:26:00 字數 749 閱讀 2161

最近在找工作,遇到一道筆試題,讓我很是糾結不知道這個題到底考的是什麼,執行了之後豁然開朗

5    char a = "123";

6 char b = "123";

7 const char c ="123";

8 const char d ="123";

9 char* e = "123";

10 char* f = "123";

11 const char* g="123";

12 const char* h="123";

問題是 a==b,c==d,e==f,g==h?

結果是:

[lalala@jjjjj ~]$ ./a.out 

a=0x7fffaca3df50

b=0x7fffaca3df40

c=0x7fffaca3df30

d=0x7fffaca3df20

e=0x4006d8

f=0x4006d8

g=0x4006d8

h=0x4006d8

解析:因為a和b都是在棧中的,雖然他倆的值是一樣的,但是他們在棧中存放的位置不一樣

c和d同理

e、f、g、h他們四個都是指標都是指向資料段中.ordata區的「123」,所以他們的位址是一樣的;

字串筆試題

1 輸入乙個整數的字串,把該字串轉換成整數並輸出。例如輸入字串 345 則輸出整數345 思路 依次掃瞄字串,每掃到乙個字元,把之前的得到的數字乘以10再加上當前字元表示的數字。注意 還可能包括 或 表示整數的正負。需要特殊處理 考慮非法輸入 1 判斷指標是否為空 2 輸入的字串可能不是數字的字元,...

有關字串的筆試題

小總結 1.轉換字串格式為原來字串裡的字元 該字元連續出現的個數 1233422222轉換為1121324125 思路 兩個vector來存放,乙個存放字元,乙個存放次數 void printchte string str mytime.push back time mychar.push back...

常見的字串,指標筆試題

題目1 寫乙個c程式對字串進行壓縮,例如 abbcccaaaa 經過壓縮後變成 a1b2c3a4 實現 include intmain else printf n return0 題目2 縮減字串,例如 000001024 縮減後就變成 1024 用while迴圈過濾掉陣列前多餘的字元 0 incl...