c语言'a'和"a"有什么区别

如题所述

1、本质区别

双引号里面的是字符串, 而单引号里面的代表字符。

2、输出区别

str = “a”输出的就是a这个字母;

str = ‘a’输出的测试65

3、底层区别

用单引号引起的一个字符实际上代表一个整数,整数值对应于该字符在编译器采用的字符集中的序列值。

扩展资料:

C 语言中,逗号(,)也可以是运算符,称为逗号运算符(Comma Operator)。逗号运算符可以把两个以上(包含两个)的表达式连接成一个表达式,称为逗号表达式。其一般形式为:

子表达式1, 子表达式2, ..., 子表达式n

例如:a + b, c = b, c++

逗号运算符的优先级是所有运算符中级别最低的,通常配合 for 循环使用。逗号表达式最右边的子表达式的值即为逗号表达式的值。上例中,c++ 的值(c 自增之前的值)即为该表达式的值。

逗号运算符保证左边的子表达式运算结束后才进行右边的子表达式的运算。也就是说,逗号运算符是一个序列点,其左边所有副作用都结束后,才对其右边的子表达式进行运算。因此,上例中,c 得到 b 的值后,才进行自增运算。

参考资料来源:百度百科-C语言

温馨提示:答案为网友推荐,仅供参考
第1个回答  2022-12-01

1、本质区别

双引号里面的是字符串, 而单引号里面的代表字符。

2、输出区别

str = “a”输出的就是a这个字母;

str = ‘a’输出的测试65

3、底层区别

用单引号引起的一个字符实际上代表一个整数,整数值对应于该字符在编译器采用的字符集中的序列值。

扩展资料:

C 语言中,逗号(,)也可以是运算符,称为逗号运算符(Comma Operator)。逗号运算符可以把两个以上(包含两个)的表达式连接成一个表达式,称为逗号表达式。其一般形式为:

子表达式1, 子表达式2, ..., 子表达式n

例如:a + b, c = b, c++

逗号运算符的优先级是所有运算符中级别最低的,通常配合 for 循环使用。逗号表达式最右边的子表达式的值即为逗号表达式的值。上例中,c++ 的值(c 自增之前的值)即为该表达式的值。

逗号运算符保证左边的子表达式运算结束后才进行右边的子表达式的运算。也就是说,逗号运算符是一个序列点,其左边所有副作用都结束后,才对其右边的子表达式进行运算。因此,上例中,c 得到 b 的值后,才进行自增运算。

参考资料来源:百度百科-C语言

第2个回答  2011-11-08
在现有的c语言用法习惯中,'a'的意义是字符型常量a,而"a"的意义是字符串常量a,默认后面还有个'\0'作为字符串的结束符,此常量占俩个字符空间,两者的区别就在于数据类型不同,前者是字符常量(char),在计算机内存中占用一个字符空间,后者是字符串常量(string),在计算机内存中占用俩个字符空间。
备注:在计算机中对于字符串型数据的存储是用字符数组来实现的,所以上面的后者虽然本身作为字符串常量,但是在计算机内存中占用的是字符空间。
第3个回答  推荐于2017-09-14
1 用''对包含的代表字符常量,其值为字符a的ascii码。
2 用""对包含的代表字符串常量,其有两个元素,第一个是a,第二个是结束符'\0'。

于是二者区别可以总结为:
1 类型不同,字符和字符串。
2 占用空间不同,前一个是一个字节,后一个是两个字节。
第4个回答  2011-11-08
一个'a‘是字符,只占一个字符的内存空间,"a"是字符串,后面还有'\0'占两个字符的空间。本回答被提问者采纳