C语言中,定义ch1为字符型变量,为什么可以赋值整数?为什么可以以整形格式输出ch1?定义整形变量

Python011

C语言中,定义ch1为字符型变量,为什么可以赋值整数?为什么可以以整形格式输出ch1?定义整形变量,第1张

char变量存的就是字符的ASCII编码,占用1字节,取值范围在0~255之间

举个例子:

char ch1 = ‘a’

char ch1 = 97//把字符a的ASCII编码赋值给ch1

这两种方式都是可以的

在内存里,字符是以ASCII码的形式存储的,说白了就是8位二进制数,所以赋值的时候 char ch1 = 'a',char ch2 = 97 是等价的,这里的ch1=ch1-32等价于ch1=97-32=65,在ASCII码里是A,所以相当于大小写转化!

void swap(char x,char y) //定义函数swap()

{

char ch

ch=x//x的值赋给ch

x=y//y的值赋给x

y=ch//通过中间量ch把x的值赋给y

}

以下是百度的!形参出现在函数定义中,在整个函数体内都可以使用, 离开该函数则不能使用。实参出现在主调函数中,进入被调函数后,实参变量也不能使用。 形参和实参的功能是作数据传送。发生函数调用时, 主调函数把实参的值传送给被调函数的形参从而实现主调函数向被调函数的数据传送。

1.形参变量只有在被调用时才分配内存单元,在调用结束时, 即刻释放所分配的内存单元。因此,形参只有在函数内部有效。 函数调用结束返回主调函数后则不能再使用该形参变量。

2.实参可以是常量、变量、表达式、函数等, 无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值, 以便把这些值传送给形参。 因此应预先用赋值,输入等办法使实参获得确定值。

3.实参和形参在数量上,类型上,顺序上应严格一致, 否则会发生“类型不匹配”的错误。

4.函数调用中发生的数据传送是单向的。 即只能把实参的值传送给形参,而不能把形参的值反向地传送给实参。 因此在函数调用过程中,形参的值发生改变,而实参中的值不会变化。