字符和整数没有本质的区别。可以给 char变量一个字符,也可以给它一个整数;反过来,可以给 int变量一个整数,也可以给它一个字符。 char 变量在内存中存储的是字符对应的 ASCII 码值。如果以 %c 输出,会根据 ASCII码表转换成对应的字符,如果以 %d 输出,那么还是整数。 int 变量在内存中存储的是整数本身,如果以 ...
c - '2' == c - 50,与c - 2差别是明显的。对于c - '2'来说,这里的c通常是char类型,其值可能是'2','3',...‘8’,‘9’,那么c - '2'就是一个差值,这个值代表c与'2'的距离。对于c - 2来说,这里的c可能是一个int类型,实际效果就是求两个整数的差。
1 默认指向空间占用的大小不同。int *指向空间需要有4个字节,char*指向空间有一个字节就可以了。如果int*指向的空间不足,那么对其读写时就会出现越界操作。2 使用时的可取值范围不同。用*取值时,int *得到的值是int类型的范围,而char *可以取到的值是char的返回。3 赋值时范围不同。用*p形式...
本质上来说都是地址 可以互相转换 取值时才有区别。当读取值 或者赋值时, char*一次一个字节。 而int*会一次四个字节。
本质上来说都是地址 可以互相转换 取值时才有区别。 当读取值 或者赋值时, char*一次一个字节。 而int*会一次四个字节。 char*型指针和int*型指针的区别是什么? 不管是什么指针,其本质就是一个地址。但是在使用上还是有所不同的。1 默认指向空间... 3 赋值时范围不同。用*p形式赋值时,如果是int*... ...
int 是整形 因此定义的数字是 一个整形的数字 int a =1; 那么a就是为1. char 型为字符型 ,是字符型的数字会自动变为字符格式 char a = 1; 那么a = '1',即为a=0x01; 因此如果要使用仿真比较单个bit的话显然使用char型要更合适一些,而在处理一些运算是,int型则更合适一些。
长度不同,字符在电脑中表示是以一个数字来表示的,就是说一个字符对应一个数字,所以char和int可以互相转换。int 的长度和电脑有关,不同的电脑可能不同,有32位的也有64位的。我没有测试过单片机,因为C语言有很好的移植性,所以说单片机和其他的平台应该是一样的,可以互相转换。
%d是输出有符号整数。
c - '2' == c - 50,与c - 2差别是明显的。对于c - '2'来说,这里的c通常是char类型,其值可能是'2','3',...‘8’,‘9’,那么c - '2'就是一个差值,这个值代表c与'2'的距离。对于c - 2来说,这里的c可能是一个int类型,实际效果就是求两个整数的差。
c - '2' == c - 50,与c - 2差别是明显的。对于c - '2'来说,这里的c通常是char类型,其值可能是'2','3',...‘8’,‘9’,那么c - '2'就是一个差值,这个值代表c与'2'的距离。对于c - 2来说,这里的c可能是一个int类型,实际效果就是求两个整数的差。