c++ char类型有点不明白,为什么char c=’a‘,输出97, char c=97,输出为a,就是这种互换有什么意义?

供稿:hz-xin.com     日期:2025-01-13
请详细解释一下C++中字符常量的用法。关于char a ,char‘a’ 和char“a”,有什么用法区别啊?

char b=‘a';
cout<<b;结果是a
为什么不是输出97?
答:你定义的b是char型,所以输出的是char型,当然就是字符a
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
char b=a;
cout<<b;错误了?
你的a是否定义的是char型,如果是的话,付给b是没问题的比如:
#include
using namespace std;
void main()
{
char a='c';
char b=a;
cout<<b;
}
肯定是输出c
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
为什么可以写
char ch;
cin>>ch;
ch=ch+32;
cout<<ch;
这时输入大写可转换小写,定义的是char ch,ch为什么可以直接加减运算啊?是在运算过程中类型转换了?不是只有’ch‘这种才代表常量吗?
这里加减的是ascii码同样道理输出的还是看你的ch定义,本身定义是char型,输出的就是,不然你强制转换下int(ch);你输出的就是ascii码值了
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
char 'ch';
cin>>ch;就不行了?
你的定义就有问题了,char 'ch';不能这样定义字符的,' '里面的内容是传递的东西
ch是接收字符的,而' '里是要传递的东西
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
有char ch=‘101’或char ch='\101';这种写法?
cout<<ch;
我的电脑分别显示1和A啊?
ch='\101'是八进制换成十进制是65所以输出的是A
ch=’101‘这个是传字符的,我试了下,它输出的一定是最后一个字符,也就是1,如果你写10c输出是c
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
如何使我输入一个阿斯玛值,输出的是对应字母,输如一个字母,输出对应的阿斯玛值?用cin和cout表示。
int ch;
cin>>ch;
char c = ch;
cout<<c;
输入97,输出a因为你输出的是char型,同理可用于输出ascII码

无论你变量实际类型是否是无符号数 在以%u输出的时候 都会按照无符号来转换 所以结果是相同的

其实97就是a的ascii码,你一个字符串实际上也需要有编码的才能存到计算机里,ascii码就是char类型的编码方式

C++问题 char类型与int转化
因为负数是以补码的形式存在的。nptr = &chA;printf("%d\\n",chA);实际上是吧chA转换成了4字节长度(32位机器),可以认为又是一个int或long。但以下是一样的。当你int i=128时:0x00000080。截取为char后为:0x80二进制位:1000 0000,这是负数 而当你在取为int时,他会按符号位补全前面的...

++ndigit[c—'0'],关于这句怎么理解?c是char类型,0是字符啊,对应的ascll...
字符‘0’到‘9’在ASCII表上是顺序连续排列的,'0'的ASCII是48 ‘1’是49,'2'是50。。。当c是0-9之间的字符时,c-'0'就可以得到对应的数值 0 - 9,如'0'-'0'=0 '1'-'0'=1 。。。++ndigit[c-'0'] 这样,就可以用数组的对应的下标位来记录这个字符的个数了!

C++怎么判断一串char类型的数字比如说11000011某一位是不是1
for(i=0;i<sizeof(cha);i++) if(cha[i]!='1') printf("%d\\n",i);(上述判断是否为ascii字符"1",若要判断整型数1,则应将'1'改为1 )

C++的各位大神,求教一个菜鸟级的问题,为什么p = p+2 后地址不是0x003E2...
在C语言中,指针和数字进行运算(仅限加减),其规定的语法规则为:指针 +\/- 整数 (结果仍然为指针)编译器会自动根据指针类型对运算进行调整,实际结果是数字乘类型大小的偏移量。所以,对于char类型来说,p++指向下一个char;而对float来说,并不会指向float内部的第二个字节。这 里面还有一个...

(char)k++什么意思
意思就是k = k+1;然后再把k的值强制转化为一个char 比如 首先我们知道,a的asc是65,如果你的int k=64;那么 这个东西的返回值就是65,由于按char存储,所以你如果看它的值的话就会显示 'a'

VC++6.0编译系统中,char这种数据类型的取值范围是-128~127.这是怎样...
char是单 字节 有 符号 类型,即数据有8位 二进制数 ,而且最高位用作符号位.10000000-11111111表示-128到-1,00000000-01111111表示0-127

C++ 类的char成员的赋值
include <iostream>using namespace std;class Name{char FirstName[10];char LastName[10];public:Name(char *pa);void changeName();void display();};Name::Name(char * pa){int i = 0;for (; *pa != ' '; ++pa, ++i){Name::FirstName[i] = *pa;}FirstName[i] = '\\0'; ...

C\/C++怎样将char转换成unsigned char
转换规则是什么? 你举的例子很奇怪啊,看起来像是把字符转换为数字。

VC++中的char *name语句是什么意思?
char *name定义了一个指向字符的指针变量name。例如 char *name = "abcd";1)name是一个变量;2)这个变量的类型是指针,指针其实就是地址,如图所示,name的值是'a'字符占用内存的地址;

c语言中char是什么意思
也可以实现为不带符号的。不同的编译器有不同的定义。判断编译器的默认char是有符号还是无符号的类型,可以用以下的程序判定:#include <stdio.h>int main(){ char c=127; if(++c<0){ printf("signed\\n"); } else{ printf("unsigned\\n"); } return 0;} ...