簡體   English   中英

在C中訪問字符串數組的第一個元素

[英]Accessing first element of string array in C

這可能是一個新手問題,但這是我的問題:

我想聲明一個字符串數組,但是當我訪問第一個元素時,其他元素會與它連接起來。

#include <stdio.h>
int main(){
    char words[2][3] = {"foo", "bar"};
    printf("%s\n", words[0]); // I want to print foo
    printf("%s\n", words[1]); // I want to print bar
}

哪個輸出

foobar
bar

雖然我在期待

foo
bar

有人能解釋一下:

  1. 剛剛發生了什么 ?
  2. 我如何得到我期待的行為?

您的數組word沒有足夠的空間用於字符串末尾的空字節,當您嘗試將元素打印為C字符串時(使用%s ),它會導致未定義的行為 增加數組大小:

char words[2][4] = {"foo", "bar"};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM