C语言数据类型

数据类型介绍

数据类型,编译器预算对象(变量)分配内存空间大小
基本类形

类型类型名称缩写(常用)类型名称全称字节数取值范围常量后缀表示
有符号字符型charsigned char1
有符号整形shortsigned short int2-32768 ~ 32767
有符号整形intsigned int4-2147483548~2147483647
有符号整形longsigned long intWindows为4字节,Linux为4字节(32位),8字节(64位)-2147483548~2147483647无 或 l
有符号整形long longsigned long long int8-9223372036854775808~9223372036854775807无、l、ll
无符号字符型unsigned charunsigned char1
无符号整形unsigned shortunsigned short int20~65535
无符号整形unsigned intunsigned int40~4294967295u
无符号整形unsigned longunsigned long intWindows为4字节,Linux为4字节(32位),8字节(64位)0~4294967295ul
无符号整形unsigned long longunsigned long long int8ull
浮点型floatfloat4±3.4E±38f
浮点型doubledouble8±1.7E±308
浮点型long doublelong double12±1.19E±4932l

其他数据类型:
1.数组类型
2.结构类型
3.联合类型
4.枚举类型
5.指针类型

定义类型格式

#include <stdio.h>

/** 变量定义: 数据类型 变量名[标示符] */
/** 变量赋值: 变量名[标示符] = 值 */
/** 变量定义并赋值: 数据类型 变量名[标示符] = 值 */

/** 标示符命名规则 */
/** 1. 字母,数字,下划线组成 */
/** 2. 不能以数字开头 */
/** 3. 见名知义 */
/** 4. 不能和同一函数内变量名相同 */
/** 5. 不能和c语言关键字相同 */
int main(void)
{
    //定义有符号整形int类型变量a并赋值,没明确数据类型有无符合,默认为有符号类型
    int a = 10;
    //定义无符号整型int类型变量b并赋值
    unsigned int b = 10;
    printf("%d\n", a);
    printf("%u\n", b);
    return 0;
}

变量:程序运行中可以被改变的量,存在于内存中;定义一个变量是指在内存中开辟空间,告诉编译器声明这个变量
常量:具体的数值,在程序中不可更改
例如 int a = 10; 可以理解为把常量10赋值给变量a

定义char类型变量

#include <stdio.h>

int main(void)
{

    /*
    * C 语言中,char 类型也分无符号和有符号两种,默认为有符号,前面加 unsigned,表示无符号。
    * 平时多在字符串处理中使用 char 类型,并默认使用有符号,这样用基本没问题,因为 ascii 码的范围在 0~127,使用有符号类型存储 ascii 码就够了。但在遇到一些特殊用法时,需要考虑符号问题,以免出现潜在的风险。
    */
    int num = -10;
    char char_a = 'A';
    unsigned char unchar_a = 'A';
    char_a = num;
    unchar_a = num;
    /*以十进制方式打印出值对比*/
    printf("%d\n", char_a);
    printf("%d\n", unchar_a);
    return 0;
}

C语言中char类型的符号问题

定义short整形类型变量

#include <stdio.h>

int main(void)
{
    //定义有符号整形short,声明变量时有符号可以省略signed
    short short_num1 = 10;
    short short_num2 = 32768;
    short short_num3 = -32769;
    printf("signed short short_num1 = %hd\n", short_num1);
    printf("signed short short_num2 = %hd\n", short_num2);
    printf("signed short short_num3 = %hd\n", short_num3);
    printf("signed short short_num1 = %d\n", short_num1);
    printf("signed short short_num2 = %d\n", short_num2);
    printf("signed short short_num3 = %d\n", short_num3);

    //定义无符号整形short,无符号不能省略unsigned
    unsigned short unshort_num1 = 10;
    unsigned short unshort_num2 = 65536;
    unsigned short unshort_num3 = -1;
    printf("unsigned short unshort_num1 = %hd\n", unshort_num1);
    printf("unsigned short unshort_num2 = %hd\n", unshort_num2);
    printf("unsigned short unshort_num3 = %hd\n", unshort_num3);
    printf("unsigned short unshort_num1 = %d\n", unshort_num1);
    printf("unsigned short unshort_num2 = %d\n", unshort_num2);
    printf("unsigned short unshort_num3 = %d\n", unshort_num3);
}

定义int整形类型变量

#include <stdio.h>

int main(void)
{
    //定义有符号整形int,声明变量时有符号可以省略signed
    int int_num1 = 10;
    int int_num2 = 2147483648;
    int int_num3 = -2147483647;
    printf("signed int int_num1 = %d\n", int_num1);
    printf("signed int int_num2 = %d\n", int_num2);
    printf("signed int int_num3 = %d\n", int_num3);

    //定义无符号整形int,无符号不能省略unsigned
    unsigned int unint_num1 = 10;
    unsigned int unint_num2 = 4294967296;
    unsigned int unint_num3 = -1;
    printf("unsigned int unint_num1 = %u\n", unint_num1);
    printf("unsigned int unint_num2 = %u\n", unint_num2);
    printf("unsigned int unint_num3 = %u\n", unint_num3);
    printf("unsigned int unint_num1 = %d\n", unint_num1);
    printf("unsigned int unint_num2 = %d\n", unint_num2);
    printf("unsigned int unint_num3 = %d\n", unint_num3);
}

其他整形类似

定义浮点类型变量

#include <stdio.h>

int main(void)
{
	//定义float浮点类型,需要在数值末尾添加一个f,以区别double类型
	float float_num1 = 2.5f;
	float float_num2 = 2.0f;
	printf("float float_num1 = %f\n", float_num1);
	printf("float float_num2 = %f\n", float_num2);

	printf("float float_num1 = %.2f\n", float_num1);
	printf("float float_num2 = %.2f\n", float_num2);

	//定义double浮点类型
	double double_num1 = 123E30;
	double double_num2 = 123.0;
	printf("double double_num1 = %f\n", double_num1);
	printf("double double_num2 = %f\n", double_num2);

	printf("double double_num1 = %.2f\n", double_num1);
	printf("double double_num2 = %.2f\n", double_num2);

	//定义long double浮点类型,需要在数值末尾添加一个大写L或小写l
	long double longdouble_num1 = 1234567.891233L;
	long double longdouble_num2 = 123.0l;
	printf("long double longdouble_num1 = %f\n", longdouble_num1);
	printf("long double longdouble_num2 = %f\n", longdouble_num2);

	printf("long double longdouble_num1 = %.2f\n", longdouble_num1);
	printf("long double longdouble_num2 = %.2f\n", longdouble_num2);

}

01. 使用Visual Studio创建项目文件
02. 第一个简单c程序学习

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值