C语言中 可以直接整形数赋给字符型么

供稿:hz-xin.com     日期:2025-01-21
C语言中 向整型变量赋予字符可以吗

语法上没错,但是现实就又问题了,在字符变量的储存方式是二进制数字,二级制数字储存在物理内存中,在用的时候先调出这个数字,再由系统对应找到那个字符两,但是你现在把字符量给整形变量,又用整形显示,那显示的结果一定是个数字,而不是字符,而且这个数字是ASCII对应的数字,所以,你的运行结果一定是97

a=12345678 为int型,在内存中占4字节,共32位,即为 00000000 10111100 01100001 01001110
将a右移24位即取出前8位,第一个字节;
将a右移16位,然后位与00000000 11111111 即0xff,即可取出第二个字节;
将a右移8位,然后位与00000000 00000000 11111111 即0xff,即可取出第三个字节;
将a位与00000000 00000000 00000000 11111111 即0xff,即可取出第四个字节。


#include

int main(void)
{
int a = 120;
char b[4];

b[0] = a >> 24;
b[1] = ((a >> 16) & 0xff);
b[2] = ((a >> 8) & 0xff);
b[3] = a & 0xff;

return 0;
}

实际上在C语言中,两者大部分的时候可以通用。

字符型在电脑中的存储就是其ASCII码

3+‘0’ 在电脑中存储的数值为51,如果你以字符的形式显示出来,他就是
字符‘3’,如果你把他作为一个整数,他就是51

所以,就看你是利用字符还是用作整数计算。

整形数可以赋给字符型 不过要注意范围

3+'0' 就是‘3’ 可以实现整型转换成了字符型

能不能通用看的是范围。

可以直接整形数赋给字符型.
3+'0'是字符型转换成整型

char[1]='3';
3+'0';不能那么算
不能通用

3+'0'=30,是字符串
某些情况下,整型可以自动转换为字符型的

c语言数组问题 定义了char a[],b[]; b={a,b,c,d}; a=b;这样是不是错的...
确实,直接将一个字符型数组赋值给另一个字符型数组是不正确的。在C语言中,数组名称实际上是指向该数组首元素的指针。当你尝试进行数组间的直接赋值时,编译器会将数组名当作指针来处理,导致错误。正确的赋值方式应该是使用循环逐个字符地进行赋值,或者使用字符串复制函数如`strcpy`。例如:c char a[...

c语言中对整形或浮点型数组赋值可以像字符型那样整体赋值吗?
使用memset(a,0,sizeof(a));可以对a数组的全部元素赋0

C语言中scanf如果像一个%d的整型变量赋值一个字符或字符串有什么...
else printf("我失败了,没读到数");如果输入一个字符串什么的,存的数据是 %d 型 -- 因为这是你规定的 有格式 读的 格式。你还要用 函数的返回值判断,读成功了没有,读成功才收到 整型,没读成功 则 x里 没有东西。例如, 输入字符串是 123AB, x 读到 123, 多余 AB 留在输入流...

已知ch是字符型变量,下面不正确的赋值语句是---ch='a+b' ; ch='\\0...
ch='a+b'是错的,'a+b'不是单bai个字符,应该是个字符串,不能直接这样赋值。 '\\0'是转义字符 '5'+'7'是两个字符相加,返回的也是字符 5+9是整型。但可以强制类型转化为字符,如果说这个错也有可能,因为没有强制类型转换,而应该是ch=(char)(5+9)。

在C语言中,定义了一个字符变量,给他赋值一个1,为什么也可以啊
有一个东西叫ASCLL码。就是说在这里的每一个字符都有对应的无符号整形数值。从0-255共256个。刚刚好是一个字节,就是一个char型变量的字节数。例如 printf("%c%d",A,A);会输出 A,65。其实65这个整形数在ASCLL码里面表示的就是A,在C语言中,它们只是显示出来不同而已。所以你给一个char变量...

用scanf_s输入整形数据后,无法再输入字符型数据,
这样的话,还是可以的:include<stdio.h> void main(){ int i;char s;scanf_s("%d%c", &i,&s ); \/\/输完数字后紧接回车,s就读取了回车符 printf("%d\\n", i);scanf_s("%c", &s); \/\/再次输入字符时就能读到了 printf("%c\\n", s);system("pause");} ...

C语言 怎么把字符数组中的字符赋值给字符变量
(2)不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组。如下面两句都是不合法的:str1=”Hello”;str1=str2;而只能用strcpy函数将一个字符串复制到另一个字符数组中去,赋值语句只能将一个字符赋给一个字符型变量或者字符数组元素。如下面的语句是合法的:char c[5],c1,c2;c1=’A...

c语言中的字符型变量
a 01111000 b 01111001 所以也可以把它们看成是整形变量。C语言允许对整形变量赋予字符值,也允许对字符变量赋整形值。在输出时,允许把字符变量按整形量输出,也允许把整形量按字符量输出。整形量为二字节量,字符量为单字节量,当整形量按字符量处理时,只有低八位字节参与处理 ...

为什么整形数据可以赋值给实形变量
1、整型和字符型通用?是哪种语言?我从来没听说过有这样一种高级语言?2、数据的类型是可以转换的,一般分为隐式类型转换和显式类型转换,整型数赋值给实型变量时分进行隐式类型转换;比如说把整数1赋值给实型变量前会把1转换为1.0再存入实型变量 ...

c语言中字符型变量只能存放一个字符吗?
c语言中字符型变量只能存放一个字符。C语言中的字符型变量是存放字符型常量的变量,其取值是字符型常量,即单个字符,不能是字符串。字符型变量的类型说明符是char。每个字符变量被分配一个字节的的内存空间,因此只能存放一个字符。字符值是以ASCⅡ码的形式存放在变量的内存单元之中的。