繁体   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