1.C语言基本数据类型

1.1 int类型

int类型是有符号整型,即int类型的值必须是整数,可以是正整数、负整数或零。其取值范围依计算机系统而异。一般而言,储存一个int要占用一个机器字长。

声明int类型变量:先写上int,然后写变量名,最后加上一个分号。要声明多个变量,可以单独声明每个变量,也可在int后面列出多个变量名,变量名之间用逗号分隔。

也可通过scanf函数获取;

int sows;
scanf("%d",sows);

初始化:在C语言中,初始化可以直接在声明中完成。只需在变量名后面加上赋值运算符(=)和待赋给变量的值即可。

int boars = 1;//等价于int boars; boars = 1;

打印变量:可以使用printf()函数打印int类型的值。第2章中介绍过,%d指明了在一行中打印整数的位置。%d称为转换说明,它指定了printf()应使用什么格式来显示一个值。

printf("%d minus %d is %d\n", ten, 2, ten - two);
printf("\na = %d, b = %d, c = %d",a,b,c);
printf("\na = %o, b = %x, c = %#o",a,b,c);
printf("\na = %d, b = %#x, c = %#X",a,b,c);

在C程序中,既可以使用和显示不同进制的数。不同的进制要使用不同的转换说明。以十进制显示数字,使用%d;以八进制显示数字,使用%o;以十六进制显示数字,使用%x。另外,要显示各进制数的前缀0、0x和0X,必须分别使用%#o、%#x、%#X。
1.2 其他类型整形变量
C语言提供3个附属关键字修饰基本整数类型:short、long和unsigned。储存空间由少到多依次是:short int , int ,long int,long long int(除了int外其他都可将int省略),上述类型前面有关键词unsigned表示无符号整型变量,储存字节数不变,只能用于表示正数。
打印其他类型整型变量:

打印unsigned int类型的值,使用%u转换说明;打印long类型的值,使用%ld转换说明。

对于short类型,可以使用h前缀。%hd表示以十进制显示short类型的整数,%ho表示以八进制显示short类型的整数

h和l前缀都可以和u一起使用,用于表示无符号类型。例如,%lu表示打印unsigned long类型的值。

    short d = 20;
long e = 4096;
long long g = 20900000;
unsigned short d_1 = 20;
unsigned long e_1 = 9999;
unsigned long long g_1 = 99999999;
printf("\nd = %hd , e = %ld, g = %lld\n",d,e,g);
printf("d_1 = %hu, e_1 = %lu, g_1 = %llu",d_1,e_1,g_1);

2.char类型变量

char类型用于储存字符(如,字母或标点符号),但是从技术层面看,char是整数类型。
2.1申明char类型

char类型变量的声明方式与其他类型变量的声明方式相同。

char response;
char itable,latan;

2.2字符常量和初始化

在C语言中,用单引号括起来的单个字符被称为字符常量(character constant)。

char broiled;   /* 声明一个char类型的变量 */
broiled = 'T';  /* 为其赋值,正确 */
broiled = T;   /* 错误!此时T是一个变量 */
broiled = "T";  /* 错误!此时"T"是一个字符串 */

C语言将字符常量视为int类型而非char类型。

2.3 非打印字符

单引号只适用于字符、数字和标点符号,浏览ASCII表会发现,有些ASCII字符打印不出来。例如,一些代表行为的字符(如,退格、换行、终端响铃或蜂鸣)
C语言提供了3种方法表示这些字符:

  1.使用ASCII码例如蜂鸣字符的ASCII值是因此可以这样写:

char beep = 7;

  2.使用特殊的符号序列表示一些特殊的字符,把转义序列赋给字符变量时,必须用单引号把转义序列括起来。例如:

char nerf = '\n';

  3.用十六进制形式表示字符常量,即反斜杠后面跟一个x或X,再加上1~3位十六进制数字

2.4打印字符
printf()函数用%c指明待打印的字符,例如:

char ch;
ch = 'D';
printf("ch = %c",ch);

3.浮点类型变量float,double,long double

 3.1浮点类型声明

float noah, jonah;
double trouble;
float planck = 6.63e-34;
long double gnp;

3.2浮点类型常量

浮点型常量的基本形式是:有符号的数字(包括小数点),后面紧跟e或E,最后是一个有符号数表示10的指数。例如:-1.56E+12,2.87e-3

正号可以省略。可以没有小数点(如,2E5)或指数部分(如,19.28),但是不能同时省略两者。可以省略小数部分(如,3.E16)或整数部分(如,.45E-6),但是不能同时省略两者。

默认情况下,编译器假定浮点型常量是double类型的精度。

C99 标准添加了一种新的浮点型常量格式:用十六进制表示浮点型常量,即在十六进制数前加上十六进制前缀(0x或0X),用p和P分别代替e和E,用2的幂代替10的幂(即,p计数法)例如:0xa.1fp10

十六进制a等于十进制10,.1f是1/16加上15/256(十六进制f等于十进制15),p10是1024。0xa.1fp10表示的值是(10 + 1/16 +15/256)×1024(即,十进制10364.0)。

 3.3打印浮点数

printf()函数使用%f转换说明打印十进制记数法的float和double类型浮点数,用%e打印指数记数法的浮点数。如果系统支持十六进制格式的浮点数,可用a和A分别代替e和E。打印long double类型要使用%Lf、%Le或%La转换说明。

    float data = 3.3E9;
double data_1 = 1.2e-10;
printf("data is %f ,equal %e",data, data);

4.sizeof函数

sizeof是C语言的内置运算符,以字节为单位给出指定类型的大小。C99和C11提供%zd转换说明匹配sizeof的返回类型一些不支持C99和C11的编译器可用%u或%lu代替%zd。

例如:

    printf("data is %f ,equal %e\n",data, data);
printf("Type int has a size of %zd bytes.\n",sizeof(int));
printf("Type char has a size of %zd bytes.\n",sizeof(char));
printf("Type long has a size of %zd bytes.\n",sizeof(long));
printf("Type long long has a size of %zd bytes.\n",sizeof(long long));
printf("Type double has a size of %zd bytes.\n",sizeof(double));
printf("Type long double has a size of %zd bytes.\n",sizeof(long double));

结果:

Type int has a  size  of  4  bytes.
Type char has a size of 1 bytes.
Type long has a size of 4 bytes.
Type long long has a size of 8 bytes.
Type double has a size of 8 bytes.
Type long double has a size of 16 bytes.

C语言学习笔记---2.C语言数据类型的更多相关文章

  1. Go语言学习笔记(一) [Go语言的HelloWorld]

    日期:2014年7月18日   1.简介     Go 编程语言是一个使得程序员更加有效率的开源项目.Go 是有表达力.简 洁.清晰和有效率的.它的并行机制使其很容易编写多核和网络应用,而新奇的类型系 ...

  2. C语言学习笔记一---C语言概述

    一.编程语言与解释语言 1.程序的执行 a.解释:借助一个能试图理解程序的程序,使计算机按要求执行你自己写的程序 b.编译:将所写程序翻译为机器语言写的程序,使计算机按要求执行你自己写的程序 2.两者 ...

  3. C语言学习笔记01——C语言概述

    作者:Eventi 出处:http://www.cnblogs.com/Eventi 欢迎转载,也请保留这段声明.谢谢! 1 C语言的起源 1972年,贝尔实验室的丹尼斯·里奇(Dennis Ritc ...

  4. R语言学习笔记1——R语言中的基本对象

    R语言,一种自由软件编程语言与操作环境,主要用于统计分析.绘图.数据挖掘.R本来是由来自新西兰奥克兰大学的Ross Ihaka和Robert Gentleman开发(也因此称为R),现在由“R开发核心 ...

  5. 【C语言学习笔记】C语言函数执行成功时,返回1和返回0,究竟哪个好?

    基本上,没有人会将大段的C语言代码全部塞入 main() 函数,更好的做法是按照复用率高,耦合性低的原则,尽可能的将代码拆分不同的功能模块,并封装成函数.C语言代码的组合千变万化,因此函数的功能可能会 ...

  6. C语言学习笔记---1.C语言概述

    1.典型C程序结构 2.C程序细节 2.1#include指令和头文件 #include这行代码是一条C预处理器指令(preprocessor directive).通常,C编译器在编译前会对源代码做 ...

  7. go语言学习笔记-初识Go语言

    Go语言是怎样诞生的? Go语言的创始人有三位,分别是图灵奖获得者.C语法联合发明人.Unix之父肯·汤普森(Ken Thompson).Plan 9操作系统领导者.UTF-8编码的最初设计者罗伯·派 ...

  8. C语言学习笔记:15_c语言中的进制操作.c

    /* * 15_c语言中的进制操作.c * * Created on: 2015年7月5日 * Author: zhong */ #include <stdio.h> #include & ...

  9. C语言学习笔记 (008) - C语言字符串操作总结大全(超详细)(转)

    1)字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat(p, p1) 附加字符串 strncat(p, p1, n) 附加指定长度 ...

随机推荐

  1. 复杂字符串转List<JSONObject>

    public static List<JSONObject> getlist(String data){ ObjectMapper mapper = new ObjectMapper(); ...

  2. 1~n数字中1出现的个数

    1~n数字中1出现的个数 LeetCode 给定一个整数 n,计算所有小于等于 n 的非负整数中数字 1 出现的个数. 感觉挺有意思 对于一个数,我们先局部分析一下,比如123456,我们考虑百位这个 ...

  3. netty系列之:对聊天进行加密

    目录 简介 PKI标准 各类证书的后缀和转换 netty中启动SSL server netty中启动SSL client 总结 简介 在之前的文章中,我们讲到了怎么使用netty建立聊天室,但是这样的 ...

  4. 谈谈Linux字符设备驱动的实现

    @ 目录 字符设备驱动基础 申请设备号 创建设备节点 在驱动中实现操作方法 文件IO调用驱动中的操作 应用程序与驱动的数据交互 内核驱动如何控制外设 控制LED的简单驱动实例 驱动程序的改进 框架复盘 ...

  5. 从 FFmpeg 性能加速到端云一体媒体系统优化

    7 月 31 日,阿里云视频云受邀参加由开放原子开源基金会.Linux 基金会亚太区.开源中国共同举办的全球开源技术峰会 GOTC 2021 ,在大会的音视频性能优化专场上,分享了开源 FFmpeg ...

  6. 攻防世界PWN简单题 level0

    攻防世界PWN简单题 level0 开始考验栈溢出的相关知识了 Checksec 一下文件 看看都开了什么保护 和 是多少位的程序 发现是64位的程序, 扔进IDA64.IDA YYDS.. 进入主函 ...

  7. SSM自学笔记(七)

    14.MyBatis的多表操作 1.MyBatis的多表操作 1.1 一对一查询 一对一查询的模型 用户表和订单表的关系为,一个用户有多个订单,一个订单只从属于一个用户 一对一查询的需求:查询一个订单 ...

  8. C#多线程实践-锁和线程安全

    锁实现互斥的访问,用于确保在同一时刻只有一个线程可以进入特殊的代码片段,考虑下面的类: class ThreadUnsafe { static int val1, val2; static void ...

  9. vue项目接口管理,所有接口都在apis文件夹中统一管理

    参考:https://www.codercto.com/a/53432.html 在vue开发中,会涉及到很多接口的处理,当项目足够大时,就需要定义规范统一的接口,如何定义呢? 方法可能不只一种,本文 ...

  10. 阿里云sql监控配置-druid

    今天我们说说数据源和数据库连接池,熟悉java开发的同仁应该都了解C3PO,在这里不做过多的赘述了,今天我们说的是阿里DRUID,druid是后起之秀,因为它的优秀很快占领了使用市场,下边我们一起来看 ...