1.数据类型

本文介绍了计算机中的数据类型概念,包括基本数据类型如整型、浮点型,以及变量的定义、属性和访问。强调了变量在使用前必须定义,并探讨了整数在计算机中的存储方式,特别是补码表示法。此外,还提到了不同整数类型间的赋值可能存在的问题以及常量的定义。
摘要由CSDN通过智能技术生成

0.问题引入
我们知道计算机是人类用来解决某些问题的一种工具而已。
那计算机是通过什么来解决问题的呢?

	计算"computer" 
	
计算机通过把问题域的一些数据保存起来,然后通过某些算法
从而得到计算的结果。

程序 = 算法 + 数据结构

数据如何保存? 
	和数据的属性: 数据的大小、取值范围、所需内存大小 == 
	
在C语言中,如果要保存一个数据,那么您就得研究它是什么类型的数据。
  1. 数据类型
    什么是数据类型?
    数据类型就是数据的类型。

     C语言中,整数的默认类型为Int
     	浮点数的默认类型为 double
    

    typeof(x) => 求对象x的类型。
    例子:
    typeof(1) => int
    typeof(1.0) => double

     	int x;	
     	typeof(x) => int
     		
     	char a;
     	typeof(a) => char
     		
     	typeof(250) =>int
     	typeof(250.0) => double
     						
     	typeof(2.5f) => float
     	typeof(2.5) => double
     	......
    
#include <stdio.h>

int main()
{
   
	//typeof(1) a; // <=> int a; 

				//声明一下: 在咱们的编译器下面可以用typeof,
				//但是不代表所有的编译器都可以。

	char a = -1;
	printf(" a == %d\n", a); // -1

	unsigned char b = -1;
	printf(" b == %d\n", b); // 255  

	unsigned char c = 260; //不会报错
	printf(" c == %d\n", c); //
}
在C语言中,有如下类型:
	(1) 基本类型 : C语言已经给咱们定义好了的类型。
		a、整数类型 
			char/unsigned char 		(字符型) - 保存的是ASCII 
			short/unsigned short    短整型 
			int/unsigned int 		整型
			long/unsigned long      长整型
			....
			
			上面的这些基本类型,他们都是用来保存整数。
			那么他们之间有什么区别?
				1. signed / unsigned
					有符号(signed): 符号位(最高位)  + 数值位 
									1 -> 负数
									0 -> 0/正数
									
					无符号(unsigned): 所有的bit位都是数值位
					
				2. char / short / int / .... 
					所占内存空间大小不一样。
					
					char -> 8bits 
						取值范围: [-128, 127] 
						
					unsigned char -> 8bits 
						取值范围: [0, 255] 
						
						问题: 
							unsigned char a = 260 ; // test1.c 
							
							
					short / unsigned short  ->  一般 16bits
					
					int/unsigned int : 32bits 的机器下, 一般为32bits 
									   64bits 的机器下, 一般也为32bits
									   
					long/unsigned long : 32bits 的机器下, 一般为32bits 
									     64bits 的机器下, 一般为64bits
										 
					注意: 在不同的编译器,同一类型的取值范围可能不一样!!
						如: 
							keil 
								int 16bits 
								
							ubuntu 14.04  
								int 32bits 
								
					sizeof(x)  : 求对象x所占的字节数
								1Byte == 8bits 
								
						x可以是 常量、变量、类型 ==
						例子: 
							sizeof(char) == 1
							sizeof(1) == 4
							
						一般来说,基本类型所占的空间的大小符合: 
						sizeof(long) >= sizeof(int) >= sizeof(short) >= sizeof(char)
						
				3. 在GCC编译器,整数默认类型 是 int .
					typeof(3) => int 
					
					int a; 
					typeof(a) => int 
					typeof(3 + 4) => int 
					typeof(3 + 4.0) => double  
						"自动向高精度转换" => “自动向所占空间大的转换”

练习:
打印出基本类型在您的编译器下面所占的字节数是多少。

#include <stdio.h>

// '=' 赋值符号  将右边的值,赋值给左边的那个玩意儿
// '==' 等于符号  用来判断左右两边大小关系的

int main()
{
   
	int a,b,c,d;
	a = sizeof(long);
	b = sizeof(int);
	c = sizeof(short);
	d = sizeof(
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiaowuguiya

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值