C语言中'a'和"a"有什么区别? C语言中--a和a--有什么区别?麻烦给举个例子。谢谢!

www.zhiqu.org     时间: 2024-05-31

1、本质区别

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

2、输出区别

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

str = ‘a’输出的测试65

3、底层区别

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

扩展资料:

C语言是一个有结构化程序设计、具有变量作用域(variable scope)以及递归功能的过程式语言。

C语言传递参数均是以值传递(pass by value),另外也可以传递指针(a pointer passed by value)。

不同的变量类型可以用结构体(struct)组合在一起。

只有32个保留字(reserved keywords),使变量、函数命名有更多弹性。

部份的变量类型可以转换,例如整型和字符型变量。

通过指针(pointer),C语言可以容易的对存储器进行低级控制。

预编译处理(preprocessor)让C语言的编译更具有弹性。



1、本质区别

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

2、输出区别

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

str = ‘a’输出的测试65

3、底层区别

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

扩展资料:

C语言中的转义字符

在字符集中,有一类字符具有这样的特性:当从键盘上输入这个字符时,显示器上就可以显示这个字符,即输入什么就显示什么。这类字符称为可显示字符,如a、b、c、$、+和空格符等都是可显示字符。

另一类字符却没有这种特性。它们或者在键盘上找不到对应的一个键(当然可以用特殊方式输入),或者当按键以后不能显示键面上的字符。其实,这类字符是为控制作用而设计的,故称为控制字符。

在C语言中,构成字符常量的控制字符必须用转义字符表示。转义字符是一种以“\”开头的字符。例如退格符用'\b'表示,换行符用'
'表示。

转义字符中的'\'表示它后面的字符已失去它原来的含义,转变成另外的特定含义。反斜杠与其后面的字符一起构成一个特定的字符。

转义字符是C语言中表示字符的一种特殊形式。转义字符以反斜'\'开头,后面跟一个字符或一个八进制或十六进制数表示。转义字符具有特定的含义,不同于字符原有的意义,故称转义字符。

通常使用转义字符表示ASCII码字符集中不可打印的控制字符和特定功能的字符,如用于表示字符常量的单撇号('),用于表示字符串常量的双撇号(")和反斜杠(\)等。

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



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语言



'a'是一个字符,"a"是两个字符,'a'和'\0'

比如,下面这个例子:

char a1[1]={'a'};
char a2[1]={"a"};

前者a1[0]='a',能编译通过
后者编译通不过,因为a2是一个元素的数组,而"a"有两个元素,分别是'a'和'\0'

补充:
'aa'这是错误的写法,单引号是字符的引号,它只能引一个字符的
"aa"这是正确的写法,双引号是字符串的引号,它有三个字符:'a','a','\0'

在 C 语言中,
1.单引号是字符的意思:‘A’,A就是一个字符;
2.双引号就是 字符串的意思:”abd“就是一个字符串。

C语言中int *a[5]和int(*a)[5]有什么区别吗~

int*a[5]是指针数组,int(*a)[5]是数组指针,前者表示一个数组,数组元素都是指向int型变量的指针,后者表示一个指针,该指针指向一个int型有5个元素的数组,希望对你有所帮助

前者是先运算再付值。后者是先付值再运算。
比如说C
=--a
.当a
等于5时,C
等于4,是先把五减去一再付的值。当C
=a
--时,同样a
被赋值为五,C
的结果就为五,是先付的值,
但是,两式最后的a
都为四


#荀娴王# C语言求两个数的最大公约数和最小公倍数 -
(13669306419): ); } printf("最大公约数为; } while (b :%d\.h>最小公倍数为!= 0) { r = a % b; a = b;a);n&quot,%d"; printf("stdio,&a,t; printf(&quot,x/%d;n&quot,x;n" a = b; int r:%d\ b) { t = a; void main() { int a!\; b = t; if (a < scanf("Input two numbers; x = a * b,&b),a)#include< b = r,b

#荀娴王# 关于c语言中条件运算符的问题 -
(13669306419): %d\n"&&a='A'&&a='A'&&a

#荀娴王# C语言中这语句是什么意思 -
(13669306419): 用于字符表示时 \aaa形式的字符 表示ascii码值为8进制数aaa的字符 即 \101是8进制的101 也就是10进制的65代表的字符 即A 类似的 \116是8进制的116 10进制的78 即 N

#荀娴王# 请高手解答C语言输入两个数,求两个数之和.
(13669306419): &a;intmain(){inta;while(scanf(&quot,&b)#include<stdio.h&gt,a+b);n";%d%d&quot,b;!=EOF){printf("%d\}return0

#荀娴王# C语言随机数 -
(13669306419): n" / i &lt:srand影响了之后产生随机数的整个序列 假如你不用这个的话后面产生的随机序列可能会相同.h> } 然后你把隐去的那段不要隐了 看一下结果你就明白了.h&gt,呵呵 我语言表达不是很好; 你不妨试试下面的程序看看#include <; 10; ...

#荀娴王# 用C语言输出*构造的三角,编译以下,会有错误,请问哪里错误了? -
(13669306419): int a,b,c 少分号

#荀娴王# c语言中的共用体
(13669306419): 共用体里的所有变量是共地址的.即所有变量的地址是相同的. s.a[0]=0x39; 如果是16位系统的话,在内存中的表示形式是3900 s.a[1]=0x38,在内存中的表示形式是3800 所以在内存中的形式是39003800 (3900是低位字节,3800是高位字节,其...

#荀娴王# c语言问题!!!!
(13669306419): 这是用VC 6.0 执行后的结果: 第三题 程序执行后的输出结果是:39 关于第一题,你确定你的题目没有问题么?如果没问题,那么输出结果是:5.000000 至于第五题,你的程序有问题,定义中char *s1="abc",*s2="123"; 你定义了两个指针常量,是无法改变它们的值的. 第六题程序输出结果是:55 第二题程序运行结果是:60 第四题程序的运行结果是:1245 最后,为了保持一个良好的编程习惯,我介意你的main函数最好这样写: int main() { ... ... return 0; }

#荀娴王# c语言里&表示什么 -
(13669306419): 取地址命令%d是整数%f是浮点数%l是长整数%c是字符%s是字符组

#荀娴王# C语言中&符号 -
(13669306419): 是取地址,实际上&s[3]=s+3, %s是根据地址来获取字符串,遇0结束.s[3]='4'