数据类型/常量变量/数据类型转化

数据类型

  • 基本类型
    • 整数
      short int、int、long int 、unsigned short 、unsigned int、unsigned long;
    • 字符(char) 字符串 String
    • 浮点型(小数)(float和double)
  • 构造类型
    • 数组类型
    • 结构体
    • 共用
    • 枚举
  • 指针
  • 空类型(void)

C语言的常量

整形常量、浮点型常量、字符型常量、字符串常量

整形(默认类型是int)

	1. 十进制(0-9组成)
	2. 八进制【0为前缀0123】(注意:八进制一般是无符号数**0192、-011**都是不合法的)
	3. 十六进制【0x/0X为前缀,由0-9和A-F或者a-f组成】
	4. 注意:整形+U/u为unsigned int 类型如123U/u 在整形后面+l/L为long int型,如12L

实型常量:浮点数(默认是double)

	1. 小数形式
	2. 指数形式

字符型常量('?')

  1. 扩展-转义字符
#include<stdio.h>
int main(void) {
	char a, b, c, d;
	a = '\43';
	b = '\103';
	c = '\x2a';
	d = '\x41';
	//字符型常量的输出会根据输出类型的不同而变化,如果输出为%d那就是数字,%c就是字符
	printf("a=%d,b=%c,c=%c,d=%c\n", a, b, c, d);
	//转义字符的输出 \"=" \40=空格 \n=换行 注意观察morning后面的!在终端打印的时候不见了
	printf("\"good\40morning!\b\"\n");
	printf("\123455");
	return 0;
}

字符串常量

1. 可以使用空格字符、转义字符、其他

符号常量

1. (#define 标识符 常量值)

C语言的变量

变量的定义与使用
在C语言中所有的变量必须先定义后使用。

变量的定义

例如:

int r ;
float v ;
double x , y ;
char ch ;

变量的使用

使用变量的时候应该先赋值后引用
在程序中可以通过初始化、赋值表达式、或者输入函数scanf() 来对变量进行赋值

# include <stdio.h>
int main(void)
{
	//变量的定义
	int a , b , c ;
	//变量的初始化
	char ch = 'A' ;
	//变量的初赋值
	a = 10 ;
	//赋值语句赋值
	b = a + ch ;
	//使用scanf语句
	scanf_s("请输入:%d" , &c) ;
	printf("%d,%d,%d,%c", a,b ,c,ch);
	
}

变量的初始化

int x = 2 ;
int s=1 , t = 1 ;
float f = 3.68 ;
char ch = 'A' ;

注意

  1. 对一个变量初始化后,该值被储存分配给该变量的内存空间中
  2. 不允许在初始化的时候 int x=y=3 ,除非y提前被定义,应该转化成int x=3,y=3;
  3. 初始化时,一般等号两边的数据类型是一致的,如果不一致会进行自动类型转化

整型变量

关键字 类型 占用直接 取值范围
short int 短整型 2 (-2^15 2^15-1
int 整形 4
long int 长整形 4
unsigned short 无符号短整型 2
unsigned int 无符号整形 4
unsigned long 无符号长整形 4

获取数据类型的长度

#include <stdio.h>
int main()
{
    short a = 10;
    int b = 100;
   
    int short_length = sizeof a;
    int int_length = sizeof(b);
    int long_length = sizeof(long);
    int char_length = sizeof(char);
   
    printf("short=%d, int=%d, long=%d, char=%d\n", 
		short_length, int_length, long_length, char_length);
   
    return 0;
}

不同类型整形变量的定义与使用示例

# include <stdio.h>
int main(void)
{
	int a,b,c,d;
	unsigned int  e;
	a=5;
	b=6;
	e=10;
	c=a+b;
	//我觉得如果e的数字比较大可能导致一个数据丢失(自动类型转化)
	d=b+e;
	printf("c=%d,d=%d",c,d);
	return 0;
}

短整型变量的溢出

# include<stdio.h>
int main (void)
{ 
	short int a, b;
	a=32767;
	b=a+1;
	printf("a=%d,b=%d",a,b);
	return 0;
}
//结果现实--  `a=32767,b=-32768`

实型变量(小数变量)

关键字 类型 占用直接 取值范围
float 单精度 4 3.4-38~3.4E+38
double 双精度 8 1,7-308~1,7E+308
总结-单精度型的数据能保存7位有效数字,双精度的数据能保存16位有效数字
# include<stdio.h>
int main(void)
{
	float a=124.1234132;
	double b=1234.12341234;
	printf("a=%f,b=%d",a , b);
	return 0;
}

字符型变量

# include<stdio.h>
int main(void)
{
	char c1,c2;
	c1='A';
	//65对应的就是'A'
	c2=65;
	printf("%c,%c\n",c1,c2);
	printf("%d,%d\n",c1,c2);
	return 0;
}
include<stdio.h>
int main(void)
{
	char c1,c2;
	c1='A';
	c2='B';
	c1=c1+32;
	c2=c2+32;
	printf("%c,%c",c1,c2);
	printf("%d,%d",c1,c2);
	return 0;
}

其他

补充_ASCII码

posted @ 2022-07-06 00:20  Development_UP  阅读(99)  评论(0)    收藏  举报