對於字串位址問題,請參考關於字串位址傳遞的 C 語言問題

發布 科技 2024-02-05
12個回答
  1. 匿名使用者2024-01-25

    使用字串就是使用它的第乙個位址(有時和長度,實際上,擁有第乙個位址就足夠了),無論字串有多長。 最明顯的例子是,當乙個(常量)字串作為引數及其第乙個位址傳遞時。 所以你的比較只是位址的比較。

  2. 匿名使用者2024-01-24

    這應該是不可能的。 想想看。

    我們之所以使用指標(或位址),是因為我們可能想要更改單元格中的值。

    既然你的名字“w”是乙個常量,你還想改變其中的值嗎? 如果是,則稱為變數。

    至於你說的“w”也應該是乙個指標“,這不應該是真的。

    想想吧。 char

    string

    stirng";

    ifstring

    notstring")

    .事實上,字串可以這樣比較嗎? 我也忘記了。

    以上是帶有“not”的stirng陣列的第乙個位址。

    stirng“,我忘了 C 是否可以像這樣比較字串。 你說。

    通過編譯,那麼我會假設它沒問題。 回想一下 (&a[5]。dir=="w"在這種情況下,這是用(A[5])完成的。目錄)。

    將位址與“w”進行比較,c將替換(a[5]。dir)與“W”進行比較。principle 和 (string

    notstring"相同。

    呵呵,還有一件事,我想你可能已經想到了,那就是更多的字元常數不是"w"而'w'.

  3. 匿名使用者2024-01-23

    事實上,字串本身是指向第乙個字元的指標。 它的值是其第乙個字元的位址。 類似於陣列。

  4. 匿名使用者2024-01-22

    char *a;定義指標變數。

    char *b;

    char c【】=“lucent”;定義乙個字元陣列,用字串初始化。

    a=malloc(7);動態開啟 7 個位元組的儲存空間,並將空間的第乙個位址分配給指標變數 a

    strcpy(a,c);將陣列 c 中的字串複製到指標變數 a 指向的空間。

    b=a+sizeof(c)-4;a的值加上陣列c中儲存的位元組數為-4,結果為b=a+3,即b指向字元'e'

    printf(”1:%c“,a);輸出 C

    printf(”2:%s“,a+2);輸出以 A+2 開頭的字串,即 cent

    printf(”3:%d“,strlen(a));輸出 a 指向的字串的有效長度,排除在外'\0',結果輸出為 6

    printf(”4:%c“,*b);輸出指標 b 指向的字元,即 e

    ++b)=’\0‘;讓 b 指向下乙個字元,然後使用'\0'覆蓋原始字元,原始字串變為"luce\0t"

    printf(”5:%s“,a);輸出 A 指向字串,遇到 0 的結尾,即輸出 Luce

    printf(”6:%d“,strlen(b));求 b 指向的字串的有效長度,b 現在指向乙個字元 0,有效長度不包括它,所以它是 0

  5. 匿名使用者2024-01-21

    新增 2 個 print 語句,您就會明白 p、s 是位址值。

    int fun(char * s)

    選擇 d,字串 “goodbye!”。“長度 8.

  6. 匿名使用者2024-01-20

    首先,我們給出乙個 C 函式的原型:int sscanf(const char *buffer,const char *format,[argument ].)。返回值是引數的資料,即引數的數量,buffer:

    儲存的資料,格式:格式控制字串,引數:選擇性集字串。

    該程式從標準流中讀取資料,並可以進行無限的輸入。 貼上下面的**,然後導致另乙個問題,將字串IP轉換為整數IP位址。 [cpp]

    #include<

    #include<

    int main(void)else

    printf(it is not ip!);return 0;}gcc -wall -o

    這裡還有乙個問題,在很多情況下,需要將字串IP轉換為整數IP,這個問題也可以應用sscanf函式,先將四個字段儲存到A、B、C、D四個變數中,然後進行移位操作,因為IP位址是32位,而且是無符號的int變數, 因此,您可以將 unsigned int 應用於儲存。 unsinged int ip=(a<<24)+(b<<16)+(c<<8)+d。

  7. 匿名使用者2024-01-19

    由於 scanf 獲取乙個字元,然後將該字元儲存在某個記憶體區域中,因此它會為其(字元)分配儲存空間。

    列印。

    輸出時,系統根據變數名稱(外部識別符號)在記憶體中查詢匹配字元並執行輸出操作。 因此,您不需要使用位址字元。

  8. 匿名使用者2024-01-18

    對於初學者來說,請記住 scanf 的用法。

    要知道的另一件事是陣列名稱是第乙個位址。

    所以這裡的陣列 a[10],陣列名稱 a 已經是位址了。 不再獲取位址。

  9. 匿名使用者2024-01-17

    因為對於陣列 a[10],第乙個位址是 a。 this a 表示陣列的第乙個位址,因此您不需要獲取該位址。

  10. 匿名使用者2024-01-16

    string strtext = "我是中國人,他不是中國人";

    您可以使用該方法來獲取它"中國"位置的索引。

    該方法過載。

    例如,int liindex ="中國");

    獲取第乙個"中國"位置是 2;

    您也可以根據需要嘗試使用哪種方法!

  11. 匿名使用者2024-01-15

    &ss[0] 的型別為 char*。 cout 將 char* 視為 C 字串並輸出它,直到 0。

    取消引用 * ss[0] 以獲取 char 型別的單個字元。

  12. 匿名使用者2024-01-14

    遵循 C C++ 的語法:

    a 是乙個字串指標,指向"str"第乙個位址,即 S 的位址;

    &a 是指標 a 的位址!

    因此,1 和 3 在 4 個輸出中是相同的值; 2,4是相同的值,這兩個值是不同的!

相關回答