gpt4 book ai didi

c - 在 C 中创建字符串的不同方法

转载 作者:行者123 更新时间:2023-11-30 18:43:55 25 4
gpt4 key购买 nike

我正在寻找了解创建字符串的每种方法的优缺点,有人可以帮助我吗?

char x[] = {'a', 'b', 'c', '\0'};

char x[]="abc";

char *p;
p="abc";

我忘记了其他方法吗?谢谢。

最佳答案

char x[]={{'a'},{'b'},{'c'},{'\0}};

除了 '\0 后面缺少撇号之外,通常应为 char x[] = {'a', 'b', 'c', '\0' };。 C 语法允许使用单个标量初始值设定项使用额外的大括号,但编译器通常会对此发出警告,因为它表示错误 - 大括号通常用于指示聚合对象(例如数组或结构)的组成。

固定撇号后,这将 x 定义为一个由四个字符组成的数组,分别是 a、b、c 和空字符。这种格式很乏味,因此实际上没有人以这种方式定义数组,除非有一些特殊情况,例如需要使用表达式定义其中一个字符,或者可能为了某些目的而定义数组而不是用作字符串我们想强调这一点。

char x[]="abc";

这将 x 定义为与上面相同的四个字符。这是定义字符数组的常用方法。

这两种初始化方法在C语义上没有区别;两者都定义相同的数组,因此在它们之间进行选择的唯一原因是人类如何与它们交互 - 这更容易阅读,更容易编辑而不出错,等等。

char *p;
p="abc";

这是一个定义和一个赋值。最好写成 char *p = "abc"; 除非有理由不这样做。

这将 p 定义为指向与上面相同的四个字符的静态数组的指针。仅使用它来定义数组并不常见,因为它创建了一个不必要的指针 p。它通常仅在需要一个最初指向静态数组但稍后可能会更改的指针时使用。

关于c - 在 C 中创建字符串的不同方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59579067/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com