C语言中一些基本问题

一、小白在学习过程中有时会在程序中看到0u或是0ul等常量有后缀的情况,如果没接触到C语言常量后缀的话可能就有点疑惑~

其中的u为unsigned,l为long,f为float

          C语言中常量的默情况:整形默认为有符号int;浮点型默认为double;如果整形常量大小超出int,默认自然就为long int;如果需要无符号整形常量的话就可以在常量后面加u或是U,如0u或是0U,同理可以在常量后面加ul或UL表示无符号长整形常量;而浮点型常量后缀只有f或F,l或L,没有u或U,因为浮点数一般都为有符号

二、C语言的数据类型分为几种?

一、基本类型
1、整形类型:int ,short int,long int,long long int(C99),char,bool
2、浮点类型:float ,double,双精度浮点型(float_complex,double_complex,long long_comples)
二、枚举类型 enum
三、空类型 void
四、派生类型
1、指针类型 *
2、数组类型 []
3、结构体类型 struct
4、共用体类型 union
5、函数类型

三、unsigned在C语言中用法

unsigned是用于修饰整数(int、long int、short int)和char数据类型的类型说明符,表示一个上述被修饰的数据类型是无符号数(第一个二进制位不代表符号的数)。
拿char型举例:char为8位,signed char取值范围为[-128,127]共256个整数,unsigned char取值范围为[0,255]共256个整数。

四、C语言中定义unsigned a;那么变量a的数据类型是什么?

unsigned int类型,即无符号整型;
整型的每一种都有无符号(unsigned)和有符号(signed)两种类型,在默认情况下声明的整型变量都是有符号的类型,如果需声明无符号类型的话就需要在类型前加上unsigned,只有unsigned时,表示unsigned int;
现在的系统中,int一般都占4个字节,32位,表示的数组范围是-2147483648~2147483647,而无符号整型(unsigned int)不表示负数,所以表示的整数是有符号的整数的2倍,即0~4294967295。

五、c语言的强制转换

(type)<expression> 
  其中,type为类型描述符,如int,float等。<expression>为表达式。经强制类型转换运算符运算后,返回一个具有type类型的数值,这种强制类型转换操作并不改变操作数本身,运算后操作数本身未改变,例如: 
  int nVar=0xab65; 
  char cChar=char (nVar); 

  上述强制类型转换的结果是将整型值0xab65的高端两个字节删掉,将低端两个字节的内容作为char型数值赋值给变量cChar,而经过类型转换后nVar的值并未改变。

猜你喜欢

转载自blog.csdn.net/weixin_42639919/article/details/81252353