问:字符串数组元素之间运算为什么不要打单引号?
#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语言中单引号加字符表示字符负值给字符变量