【问题标题】:difference between declaring char variable with '' or "" in c [duplicate]在c中用''或“”声明char变量之间的区别[重复]
【发布时间】:2021-09-09 12:40:24
【问题描述】:

有什么区别

char name='chiheb';

char name="chiheb";

我也对 char 如何允许许多字符感到困惑。那么 string 和 char 之间有什么区别;

【问题讨论】:

  • 这能回答你的问题吗? Single quotes vs. double quotes in C or C++
  • 单引号用于字符。双引号是fir字符指针(指向字符串的指针)
  • A stringchararray,带有 NUL 终止符。一些 C 库确实定义了 string 类型(不是数组而是指针),这通常被认为是无用的。

标签: c char declaration string-literals multibyte-characters


【解决方案1】:

char 类型对象的第一个声明中,由一个多字节整数字符常量初始化,其值由实现定义。

对于第二个声明,编译器将发出一条消息,指出您正在尝试将指针转换为整数,因为用作初始值设定项的字符串文字已转换为指向其类型为 char * 的第一个元素的指针。

一个有效的声明将如下所示

char name = "chiheb"[0]; // or some other used valid index

char name = *"chiheb";

char *name = "chiheb";

【讨论】:

  • 我不明白这部分:在第一个声明中,类型为 char 的对象由多字节整数字符常量初始化,其值由实现定义。
  • @chihebnouri 这个多字节整数字符常量'chiheb'的值是实现定义的。所以你不能事先说变量名是如何初始化的。
猜你喜欢
  • 2015-07-29
  • 2013-05-15
  • 1970-01-01
  • 2014-11-07
  • 1970-01-01
  • 2010-09-29
  • 2016-04-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多