字符计算时为什么不加单引号

论文降重 独有的降重技术

免费使用,100%过查重,多种降重模式,1小时轻松搞定论文

论文查重 检测与学校相同

一站式聚合查重平台,含知网、万方、维普等,正品价格便宜

字符计算时为什么不加单引号

问:字符串数组元素之间运算为什么不要打单引号?

#include<stdio.h>
int main()
{
char a[]="abcdefg";
int b;
printf("%d",a[1]-a[0]);
}
结果为1
为什么不用加单引号就能用ASCLL值计算 如'a[1]'-'a[0]'
不是字符吗 加单引号反而不对了

  • 答:这是因为 a[1]=='b' a[0]=='a'

问:为什么数字字符不加单引号?

  • 答:加的话就是文本格式,不再代表数字了

  • 答:单引号和双引号只用于语言文本。

问:C语言的字符在输入的时候为什么不用单引号括起来?

  • 答:如果你输入了单引号,编译器也会把单引号当成一个输入字符,编译器会报错的。

  • 答:输入单引号编译器单引号输入字符编译器报错

问:C语言字符加减不是要用单引号吗?

我用的是DEV-C++
#include<stdio.h>
#include <stdlib.h>
int main()
{
char a,b,c;

printf("Please input three char:");
scanf("%c%c%c",&a,&b,&c);

if(b-a==1&&c-b==1){ //这里字符加减应该加单引号啊 为什么加了反而不对
printf("The letters are adjacent with each other.\n");
}
else{
printf("The letters are not adjacent with each other.\n");
}

system("pause");

return 0;
}
对了这是判断字符相邻问题

  • 答:字符在计算机内存中实际上存的是他的ASCII码值,所以1加上单引号之后的值是'1'的ASCII码值49,而你明显是要判断两个字符是否相邻,相邻的话,ASCII码值的差肯定是1(是整数1,不是字符1('1')),所以不能加单引号

  • 答:这里a,b,c本身表示字符的值,如a='x',如果加单引号,则表示字符a,b,c自身。

问:c语言中,对于字符什么时候应该加单引号,什么时候不该加 比如对于图片中第一题就搞不清楚?

  • 答:char指的是字符,用单引号表示,char相减代表着他们的ASCII码对应的十进制数相减,a['d'-c]-->a['d'-'a'],d的ASCII码对应的十进制数是100,a的ASCII码对应的十进制数是97,所以就是a[3],a[3]=4

  • 答:加单引号是ascii,如c就是d的ascii减去c的ascii!如果直接参加运算,使用的是变量名,实际参加运算的是变量存储的a的ascii

问:为什么将整数赋值给字符变量是不用单引号,而将字母赋值给字符变量是却要用单引号呢?一样大神解答,满意?

为什么将整数赋值给字符变量是不用单引号,而将字母赋值给字符变量是却要用单引号呢?一样大神解答,满意给好评哦

  • 答:因为整数负值给字符变量,整数取得是ASCII码实际上是把该整数对应的字符赋给了字符变量 字母赋值给字符变量要加上单引号因为在C语言中单引号加字符表示字符负值给字符变量