1.C语言中 unsigned char和unsigned int的区别
一个是无符号的字符。
一个是无符号的整数。
1.你定义一个char a和unsigned char a,然后被他们都赋个-1试试。
第一个的值打印出来就是-1,第二个的值打印出来就是255。 他们的取值范围不同,char是-127~128,unsigned char是0~255,如果不进行数字相关的操作,是否unsigned的关系倒不大。但如果用于计算则应当小心符号的问题
char 是有符号的 unsigned char 是无符号的,里面全是正数两者都作为字符用的话是没有区别的,但当整数用时有区别: char 整数范围为-128到127( 0x80__0x7F), 而unsigned char 整数范围为0到255( 0__0xFF )
2. unsigned int 和int
一个有符号和一个无符号,数值的大小不一样,这个的我要回去再跟你说
unsigned char只占1个字节内存
unsigned int占4个字节
这个问题,要是简单的理解,是很容易的,不过要是考虑的深了,还真有些内涵,一言难以,我给你说一下要点吧。
无符号数是针对二进制来讲的
在C语言中,大多数数字默认都使有符号的。
实际上有没有符号是机器层面的问题(即数值在机器中如何表示的问题,如原码、反码、补码表示法),因为C把机器层面的大多数的东西都反应了出来,像这个有没有符号的问题就是一例,是C的难点之一,建议你好点把握。
简单的说,计算机用二进制表示数值时用最高位来代表该值的符号,最高位为1时负数,最高位为0是正数,例如以8字节字长为例:
00000001表示十进制1
10000001表示十进制-1
因为占了一个最高位表示符号,这样的话有符号数表示的正数范围就小些,表示范围是有符号数和无符号数最大的区别。
首先看int和char,分别是整型数据和字符型数据,在计算机里面分别占1个和2个字节空间(TC环境),不同的环境占得字节数可能不同;
unsigned int是一个无符号整型数据,而unsigned char则是无符号字符型数据,他们在计算机里所占字节数和int,char完全一样;
区别在于unsigned int 与int ( = signed int)型数据范围不同,无符号型数据没有正负之分,而带符号数因为需要用一个数据位存放符号位,所以范围要比无符号数据小,这样,你就能知道unsigned char 和char的区别了!我顺便说一下这四个数据类型各自的范围吧!
int (= signed int) -32768 ~ +32767
unsigned int 0 ~ 65535
char (=signed char) -128 ~ +127
unsigned char 0~255
2.编写一个判断月份日数的函数,注意闰年的判断方法
3.修改修饰为const的变量
类的成员函数后面加 const,表明这个函数不会对这个类对象的数据成员(准确地说是非静态数据成员)作任何改变。
在设计类的时候,一个原则就是对于不改变数据成员的成员函数都要在后面加 const,而对于改变数据成员的成员函数不能加 const。
在C++中,mutable也是为了突破const的限制而设置的。被mutable修饰的变量,将永远处于可变的状态,即使在一个const函数中。