C语言 数据类型、运算符

http://see.xidian.edu.cn/cpp/u/c3/

C语言 数据类型、运算符
数据类型
	基本类型
		整型
		字符型
		实型(浮点型)
			单精度
			双精度
		枚举类型
	构造类型
		数组类型
		结构体类型
		共用体类型
	指针类型			不同于int,表示位置
	空类型				void
 
定义常量
#define PRICE 30
 
C语言整型数据(这个看不懂)
整型常数的后缀:在16位字长的机器上,基本整型的长度也为16位,因此表示的数的范围也是有限定的。
十进制无符号整常数的范围为065535,有符号数为-32768+32767。
八进制无符号数的表示范围为00177777。十六进制无符号数的表示范围为0X00XFFFF0x00xFFFF。
如果使用的数超过了上述范围,就必须用长整型数来表示。长整型数是用后缀“L”或“l”来表示的。
例如:
十进制长整常数:158L (十进制为158)358000L (十进制为358000);
八进制长整常数:012L (十进制为10)、077L (十进制为63)、0200000L (十进制为65536);
十六进制长整常数:0X15L (十进制为21)、0XA5L (十进制为165)、0X10000L (十进制为65536)。
长整数158L和基本整常数158 在数值上并无区别。但对158L,因为是长整型量,C编译系统将为它分配4个字节存储空间。
而对158,因为是基本整型,只分配2 个字节的存储空间。因此在运算和输出格式上要予以注意,避免出错。
无符号数也可用后缀表示,整型常数的无符号数的后缀为“U”或“u”。例如:358u,0x38Au,235Lu均为无符号数。
前缀,后缀可同时使用以表示各种类型的数。如0XA5Lu表示十六进制无符号长整数A5,其十进制为165。
 
实型数据
标准C允许浮点数使用后缀。后缀为“f”或“F”即表示该数为浮点数。如356f356.是等价的。【例3.5】说明了这种情况。
main(){
  printf("%f\n ",356.);
  printf("%f\n ",356);
  printf("%f\n ",356f);
}
 
字符常量  char a,b; //只能单引号
转义字符  \n        //回车换行
 
//整型量和字符常量可以相互输出
main()
{
	char a,b;
	a	=	120;
	b	=	121;
	printf("%c,%c\n",a,b);	
	printf("%d,%d\n",a,b);
}
 
/*
 * 变量数据类型的自动转换
 * char,short->int->unsigned->long->double
 * 在赋值运算中,赋值号两边量的数据类型不同时,赋值号右边量的类型将转换为左边量的类型。
 */
main()
{
  float PI	=	3.14159;
  int 	s,r	=	5;
  s	=	r*r*PI;
  printf("s=%d\n",s);
}
 
/*
 * 变量数据类型的强制转换
 */
main()
{
  float f	=	5.75;
  printf("(int)f=%d,f=%f\n",(int)f,f);
}
 
/*
 * 运算符
 * 位操作运算符:参与运算的量,按二进制位进行运算。
   包括位与(&)、位或(|)、位非(~)、位异或(^)、左移(<<)、右移(>>)六种。
 * 赋值运算符:用于赋值运算,分为简单赋值(=)、复合算术赋值(+=,-=,*=,/=,%=)
   和复合位运算赋值(&=,|=,^=,>>=,<<=)三类共十一种。
 * 逗号运算符:用于把若干表达式组合成一个表达式(,)。
 * 指针运算符:用于取内容(*)和取地址(&)二种运算。
 */
++i    i自增1后再参与其它运算。
--i    i自减1后再参与其它运算。
i++    i参与运算后,i的值再自增1。
i--    i参与运算后,i的值再自减1
 
/*
 * 自增实例
 * p=15,q=18 	
 */
main()
{
  int i=5,j=5,p,q;
  p=(i++)+(i++)+(i++);
  q=(++j)+(++j)+(++j);
  printf("%d,%d,%d,%d",p,q,i,j);
}
 
// 整型量b赋予c2 后取其低八位成为字符型(b的低八位为01000010,即十进制66,按ASCII码对应于字符B)。
main()
{
  int a,b=322;
  float x,y=8.88;
  char c1='k',c2;
  a=y;
  x=b;
  a=c1;
  c2=b;
  printf("%d,%f,%d,%c",a,x,a,c2);
}
 
/*
 * y等于整个逗号表达式的值,也就是表达式2的值,x是第一个表达式的值。 	
 */
main()
{
  int a=2,b=4,c=6,x,y;
  y=(x=a+b),(b+c);
  printf("y=%d,x=%d",y,x);
}

Related posts:

Leave a Reply

Your email address will not be published.