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. VueApp监听手机物理返回键的事件

    代码 第一步创建js文件夹子 在main里面引用   JS文本内容如下 //监听手机物理返回键的事件 document.addEventListener('plusready', function() ...

  2. 终极蛇皮上帝视角之铁头娃之鲁迅之暑假闲的慌之bilibili看尚学堂网课的非洲酋长java小复习

    转自https://www.sxt.cn/Java_jQuery_in_action/eight-cache-problem.html 第一个点 自动装箱与拆箱的功能是所谓的"编译器蜜糖(C ...

  3. spring-boot 2.5.4,nacos 作为配置、服务发现中心,Cloud Native Buildpacks 打包镜像,GitLab CI/CD

    spring-boot 2.5.4,nacos 作为配置.服务发现中心,Cloud Native Buildpacks 打包镜像,GitLab CI/CD 本文主要介绍 Java 通过 Cloud N ...

  4. SQL 练习21

    查询每门课程被选修的学生数 SELECT cid,COUNT(cid) 选修人数 from sc GROUP BY cid

  5. noip模拟16

    T1 是我早就忘干净的最小生成树...(特殊生成树,欧几里得生成树) 用一手prim算法一直连最小距离边 连到\(k+1\)(边界)退出即可. Code #include<cstring> ...

  6. linux 系统文件记录

    proc系列 /proc/diskstats # 记录磁盘相关信息 http://ykrocku.github.io/blog/2014/04/11/diskstats/

  7. WPF中实现动画的几种效果(最基础方式)

    参考网址:https://blog.csdn.net/qq_45096273/article/details/106256397 在动画之前我们先了解一下几个声明式动画中常用的元素: 一.Storyb ...

  8. CPU 进程 线程 关系与区别

  9. mzy git学习,删除文件(三)

    删除一个文件(工作区删除,并且在本地版本库中也删除) 第一种方式: rm test.txt 先删除工作区的test.txt git add test.txt (我的理解是,将删除test.txt这个动 ...

  10. 初探Spring Security

    Spring Security 简介 Spring Security是Spring家族中的一个组成框架,具有强大且高度可定制的身份验证和访问控制功能,致力于为Java应用程序提供身份的验证和授权 (先 ...