在尽量通过命名来赋予变量意义的时候,大家也不要忘了用注释来给变量释义。 字符串变量 什么是字符串?我们把字符串里面的数字,字母或者符号叫做字符,连一起串成串,就成了字符串。用来干啥呢?...注意引号是不可或缺的。 整数型变量和浮点型变量 看到这个小标题,大家应该猜出来,整数型和浮点型变量是拿来计算用的,其中浮点类型变量是用来存储带有小数的实数。但是,为什么要这么划分呢?...在计算机系统的发展过程中,曾经提出过多种方法表示实数,但是到目前为止使用最广泛的是浮点表示法。...格式化字符串 有了字符串,我们就可以打印一段话。但是,我们想将事先定义好的变量加进去,该如何做到呢?比如说,我们事先定义苹果数量,是一个整数型变量。...然后我们想打印的时候,直接引用这个变量,用来告诉大家我们有多少苹果。答案便是格式化字符串,用一个标记指代变量,融入字符串中。
一、数据类型介绍 数据类型:就是数据之间相似的特征; 数据类型包括:内置类型和自定义类型; 内置类型包括:字符型、整型、浮点型、布尔类型; 自定义类型包括:数组、结构体(struct)、枚举(enum)...这是一个良好的习惯 1.4 布尔型 C语言原来并没有为布尔单独设置一个类型,而是使用整数0表示假,非0表示值表示真,在C99中引入了布尔类型,专门表示真假,还是以0/1判断真假为多。...二、signed 和 unsigned C语言使用 signed 和 unsigned 关键字修饰字符型和整型类型的(浮点类没有) signed关键字,表示一个类型带有正负号,包含负值; unsigned...,丢弃掉后面的小数部分; 商有小数:只有当定义为浮点类型时并且在运算数中有一个浮点数时,打印时定义为浮点型,才会进行浮点数除法。...: int a = 10; a += 3;//操作符为一个整体不能有空格 C中提供了许多复合赋值符,这些赋值符有: //操作符是一个整体二者之间不能有空格 += -= *= /= //下面的后期再讲
signed:表示一个类型带有正负号,包含负值; unsigned:表示一个类型不带有正负号,只能表示零和正整数 3....常见的占位符: %a 十六进制的浮点数,字母输出为小写 %A 十六进制的浮点数,字母输出为大写 %c 单个字符 %d 有符号十进制整数 %e 浮点数,e 计数法 %E 浮点数,E 计数法 %g 6个有效数字的浮点数...%x 无符号十六进制整数,使用十六进制数 0 f %X 无符号十六进制整数,使用十六进制数 0 F %% 打印一个百分号 10.1.3 输出格式 printf(格式字符串,待打印项1,待打印项2,....不满5位,对应的值前面会添加空格。输出的值默认是右对齐,即输出内容前面会有空格;希望改成左对齐,在输出内容后面添加空格,可以在占位符的%的后面插入一个-号。...%c不忽略空白字符,返回当前第一个字符,无论该字符是否为空格。 如果要强制跳过字符前的空白字符,可以写成scanf(" %c",&ch);,即%c前加上一个空格,表示跳过零个或多个空白字符。
printf()函数是格式输出函数,请求printf()打印变量的指令取决与变量的类型.例如,在打印整数是使用%d符号,在打印字符是用%c 符号.这些符号被称为转换说明.因为它们指定了如何不数据转换成可显示的形式...转换说明及作为结果的打印输出 %a 浮点数、十六进制数字和p-记数法(C99) %A 浮点数、十六进制数字和p-记法(C99) %c 一个字符 %d 有符号十进制整数...的无符号十六进制整数 %X 使用十六进制数字0f的无符号十六进制整数 %% 打印一个百分号 printf()的基本形式: printf("格式控制字符串",变量列表); 下面对组成格式说明的各项加以说明...%m.ns:输出占m列,但只取字符串中左端n个字符。这n个字符输出 在m列的右侧,左补空格。 %-m.ns:其中m、n含义同上,n个字符输出在m列范围的左侧,右补 空格。...分别对应外面的参数m和n 。我想这种方法的好处是可以在语句之外对参数m和n赋值,从而控制输出格式。
转换字符 %% 印出百分比符号,不转换。 %c 整数转成对应的 ASCII 字元。 %d 整数转成十进位。 %f 倍精确度数字转成浮点数。 ...格式化数字字符串sprintf 最常见的应用之一莫过于把整数打印到字符串中,所以,sprintf 在大多数场合可以替代itoa。 如: //把整数123 打印成一个字符串保存在s 中。 ...这里要注意一个符号扩展的问题:比如,假如我们想打印短整数(short)-1 的内存16 进制表示形式,在Win32 平台上,一个short 型占2 个字节,所以我们自然希望用4 个16 进制数字来打印它...” 这可以类比打印浮点数的”%m/nf”,在”%m.ns”中,m 表示占用宽度(字符串长度不足时补空格,超出了则按照实际宽度打印),n 才表示从相应的字符串中最多取用的字符数。...下面的是个完整的例子,产生10 个[0, 100)之间的随机数,并将他们打印到一个字符数组s 中, 以逗号分隔开。
+ 强制在结果之前显示加号或减号(+ 或 -),即正数前面会显示 + 号。默认情况下,只有负数前面会显示一个 - 号。 (space) 如果没有写入任何符号,则在该值前面插入一个空格。...这里要注意一个符号扩展的问题:比如,假如我们想打印短整数(short)-1 的内存16 进制表示形式,在Win32 平台上,一个short 型占2 个字节,所以我们自然希望用4 个16 进制数字来打印它...这里要注意一个符号扩展的问题:比如,假如我们想打印短整数(short)-1的内存16进制表示形式,在Win32平台上,一个short型占2个字节,所以我们自然希望用4个16进制数字来打印它: short...这里要注意一个符号扩展的问题:比如,假如我们想打印短整数(short)-1 的内存16 进制表示形式,在Win32 平台上,一个short 型占2 个字节,所以我们自然希望用4 个16 进制数字来打印它...这里要注意一个符号扩展的问题:比如,假如我们想打印短整数(short)-1 的内存16 进制表示形式,在Win32 平台上,一个short 型占2 个字节,所以我们自然希望用4 个16 进制数字来打印它
没有数据就没有类型,同样的没有类型就没有数据。类型就好比一个垃圾分类站一样,里面是有不同的类型的。...浮点类型 浮点类型说直白点就是带有小数的就被称之为是浮点型,总共有分为两种类型。...注意在一个值后面加上一个小数点,该值就成为一个浮点值。 ②这里先做简要介绍3.16E7表示3.16×10的7次方。 ③这里关键要理解浮点数和整数的储存方案不同。...演示了一个储存浮点数的例子。当然,计算机在内部使用二进制和2的幂进行储存,而不是10的幂。 两种类型区别 float类型也被称之为单精度浮点型,它的作用是可以打印带有浮点数的数字。...double类型也被称之为双精度浮点型,它的作用是可以打印带有浮点数的数字。
一些常见的转换说明及打印结果: 转换说明 输出 %d 有符号十进制整数 %c 单个字符 %A 浮点数,十六进制数和p计数法(c99/c11) %a 浮点数,十六进制数和p计数法(c99/c11) %f...使用十六进制数Of %X 无符号十六进制整数,使用十六进制数OF %% 打印一个百分号 %g(或%G) 浮点数不显示无意义的零“0” 其基本格式如下: printf(格式字符串,待打印1,待打印2,....1个小洁,2个小洁洁 注意:格式字符串中的转化说明一定要与后面的打印项一一相匹配。...有符号值为负,则在值前面显示负号 空格 :有符号值为正,则在值前面显示前输出一个空格· 有符号值为正,则在值前面显示减号 +标记覆盖一个空格 # /0 ...ll 和整型转换说明一起使用,表示long long int/unsigned long long int类型的值 L 和浮点型转换说明一起使用,表示long double类型的值 z 和整型转换说明一起使用
我们把让 CPU 处理的数据都放在内存中,但如果你没有给他安排一个位置,而是随意存放,那么你在后边需要再次用到这个数据的时候,就再也找不到它了。...如下图是一种形象的解释,我们可以理解变量和常量是存储数据的带有名字的坑位,在后面过的 “变量声明” 我们还将看到,它不仅仅指定了名字,还制定了坑的大小(即变量在内存中的大小)。 ?...2.3 常用的基本数据类型 在 C 语言中常见的数据类型有以下四种: char 字符型,占用一个字节 int 整型,通常反映了所用机器中整数的最自然长度 float 单精度浮点型 double 双精度浮点型...2.4 声明变量的语法 在第一部分有提到过在变量声明中,不仅仅要给出变量的名字,还要给出变量的大小,实际给出了数据类型就相当于给出了变量的大小,比如说 int a; // 在内存中找到一个整型大小的位置...所以在格式化输出函数printf中,格式化的含义正如上面的程序所展示的,将不同类型的数据转化为字符串的形式再打印出来,比如printf("尝试打印输出一个字符%c在一个句子中\n", b);中就是将 b
(2)浮点数表示字符或整型量的输出格式,如%6.9s 和%6.9d 如果用浮点数表示字符或整型量的输出格式,小数点后的数字代表最大宽度,小数点前的数字代表最小宽度。...7.可以在%和定义转换字符之间通过插入修饰符为基本的转换说明加以修改。...: i=30 运行语句: scanf(“%d,%f”,&a,&x); 输入格式应为: 10,0.3 “%d,%f”说明输入一个整型数和一个浮点数之间要输入一个逗号。...它依次把转换说明与字段相匹配,并跳过它们之间的空格(当格式控制符为%c时例外)。 3)当scanf遇到不匹配数据类型的数据时,ANSI C要求函数在第一个出错的地方停止读取输入。...7)如果在%后面、格式字符前面加上一个“*”附加说明符,表示跳过该输入,输入的数据不放入变量中。 8)使用scanf函数对实型变量赋值时,在格式%f中加入域宽修饰符,其中小数点算一个域宽。
isascii()测试字符是否为ASCII码字符isblank()测试字符是否为空白字符 包括空格 \r\n\t 符号iscntrl()测试字符是否为ASCII码的控制字符isdigit()测试是否为阿拉伯数字...打印到屏幕上isspace()测试字符是否为空格字符ispunct()测试字符是否为标点符号或特殊符号isxdigit()测试字符是否为16进制数字 2、数据转换函数 头文件: #include...ndigit,int* decpt,int *sign)将浮点型数转换成字符串 ndgit指的是全部的有效位数 数量不足是在尾部补0fcvt(double value,int ndigit,int*...4、格式化输入函数 函数名作用scanf()格式化字符串输入 可用一个变量记录scanf()的返回值 1、空格是默认的分隔符 2、部分数据格式是可以自动正确分割的,但是整数和小数之间,需要手动分割(...fscanf()格式化文件字符输入 格式参数作用%d整数输入输出参数%u无符号整数%l64位整数%lld64位整数%f对应 float类型 在printf()中以doublue类型处理 在scanf(
单精度浮点型 float 双精度浮点型 double 扩展双精度浮点型 long double 不同数据在内存中的存储 计算机内存中最小的组成单元是bit(位),一个bit由八个二进制0或1组成。...有无符号修饰数据类型 有无符号可以修饰char型和整型,不能修饰浮点型 char分为有符号字符型signed char 和无符号字符型unsigned char int也分为有符号与无符号,如signed...~65535 有符号整型 signed int 4 -2147483648~2147483647 无符号整型 unsigned int 4 0~4294967295 单精度浮点型 float 4 1.175494351e...变量命名规则 变量名由大小写字母、数字、下划线组成,且数字不能作为变量名的首位置。 变量名尽量有意义,能让人从变量名知道它的用途是什么。 变量定义:数据类型名 空格 变量名字并以英文的分号结束。...变量初始化: 定义时初始化 int a = 0; 定义后再初始化 int a; a=0; 变量的作用域 变量在一个程序中不总是有效的。
float 单精度浮点型 double 双精度浮点型 类型的意义: 1.决定了使用这个类型开辟内存空间的大小(大小决定了使用范围) 2.决定了如何看待内存空间的视角 类型的基本归类: 整型家族: ...浮点数家族: float : 单精度浮点型 double : 双精度浮点型 注:1.double在C99标准中引入的. 2.float保存小数点后6位,double保存小数点后15或16...:-1 -1 255 %d是打印有符号的整型 先截断再整型提升 -1一定是以补码的形式存放在内存中的,但是要将原码转化为补码才能得到我们想要的-1 注:有符号的char的取值范围是-128---127 ...浮点数存储规则: 根据IEEE754(电气和电子工程协会),任意一个二进制浮点数V都可以表示成:(-1) ^ S * M * 2^E S表示符号位,M表示数字位,E表示指数位....对于64位的浮点数,最高的一位是符号位,接着的11位是指数位,剩下的52位为有效数字M. IEEE754对有效数字M和指数E,还有一些特别规定。
*6)/4 Out[3]: 5.0 In [4]: 8/5.0 Out[4]: 1.6 在进行除法/的时候,如果2个除数都是int型,则返回的值也为整型int: 如果有1个除数为浮点型float...,则结果值为浮点型float; 使用运算符//做除法,则返回的值为除后取整 使用%做除法取余数; In [5]: 17/3 Out[5]: 5 In [6]: 17/3.0 Out...last) in () ----> 1 n NameError: name 'n' is not defined 整型和浮点类型的转换...: In [15]: 3*3.75/1.5 Out[15]: 7.5 In [16]: 7.0/2 Out[16]: 3.5 可以将最后打印的计算结果直接给“_”符号 In [17]: tax=...如果不想打印特殊字符,可以在第一个引号前面加r: In [33]: print 'C:\some\name' C:\some ame In [34]: print r'C\some\name' C\some
printf()是C语言标准库函数,在 stdio.h 中定义。输出的字符串除了可以使用字母、数字、空格和一些数字符号以外,还可以使用一些转义字符表示特殊的含义。...,以16进制输出,此处”a”的大小写代表在输出时用的”p”的大小写 g / G double 有效位数,如:%.8g表示单精度浮点数保留8位有效数字 c char 字符型。...&esmp;* 格式列表中,下一个参数还是width width是一个可选的指定最小值字段宽度的十进制数字字符串。如果转换值字符少于字段宽度,该字段将从左到右按指定的字段宽度填充。...* e 和 f 转换的基数字符后的最少数字显示位数。 * g 转换的最大有效数字位数。 * s 转换中字符串的最大打印字节数目。 类型长度length 类型长度指明待输出数据的长度。...因为相同类型可以有不同的长度,比如整型有16bits的short int,32bits的int,也有64bits的long int,浮点型有32bits的单精度float和64bits的双精度double
五、字符和ASCII编码 在键盘上可以敲出各种字符,如:a,q,@,#等,这些符号都被称为字符,C语⾔中字符是⽤单引号 括起来的,如:'a','b','@'。...⼀些随机值,这就是 因为 arr1 在末尾的地⽅没有 \0 字符作为结束标志,在打印的时候没有停⽌。...十、数据类型 C语⾔提供了丰富的数据类型来描述⽣活中的各种数据。 使⽤整型类型来描述整数,使⽤字符类型来描述字符,使⽤浮点型类型来描述⼩数。...11.3 变量的命名规则和规范 1.一个变量名称可以由数字、字母、下划线、美元符号($) 组成 2.严格区分大小写 3.不能由数字开头,不要使用中文汉字命名 4.不能是保留字或者关键字 5.不要出现空格...所以,⽤⼾输⼊的数据之间,有⼀个或多个空格不影响 scanf() 解读数据。另外,⽤⼾使⽤回⻋ 键,将输⼊分成⼏⾏,也不影响解读。
格式 描述%% 百分号标记 #就是输出一个%%c 字符及其ASCII码%s 字符串%d 有符号整数(十进制)%u 无符号整数(十进制)%o 无符号整数(八进制)%x 无符号整数(十六进制)%...X 无符号整数(十六进制大写字符)%e 浮点数字(科学计数法)%E 浮点数字(科学计数法,用E代替e)%f 浮点数字(用小数点符号)%g 浮点数字(根据值的大小采用%e或%f)%G 浮点数字...(类似于%g)%p 指针(用十六进制打印值的内存地址)%n 存储输出字符的数量放进参数列表的下一个变量中% 格式化符也可用于字典,可用%(name)引用字典中的元素进行格式化输出负号指时数字应该是左对齐的...2位小数>> 1.29e+00格式化操作符辅助指令符号 作用* 定义宽度或者小数点精度- 用做左对齐+ 在正数前面显示加号( + )在正数前面显示空格# 在八进制数前面显示零('0'),在十六进制前面显示...'0x'或者'0X'(取决于用的是'x'还是'X')0 显示的数字前面填充 ‘0’ 而不是默认的空格% '%%'输出一个单一的 '%'(var) 映射变量(字典参数)m.n m 是显示的最小总宽度,n
d打印浮点型数值时结果总很大的一个数字?...f\n", *p); //再分别以整形和浮点型的方式打印a和*p的值 return 0; } 该程序放入vs编译器后的运行结果如下: 可以发现一个有趣的现象,当我们使用...%f来打印一个整形时,大概率编译器都会打印出一个0.000000出来,而使用%d来打印一个浮点型数据时编译器大概率会打印出一个(看似)非常大且没有规律的数字。...有许多同学会认为这是编译器报错的一种方式,即遇到用%f打印整形的“错误指令”时就固定打印出0.000000来提醒程序员代码写错了,而遇到用%d来打印浮点型的“错误指令”时就打印一个随机值来提醒程序员代码写错了...但接下来我们一起探究一下整形数据和浮点型数据在内存中的存储后,就能明白其实编译器给出的这些数字是经过非常严格的计算得来的,而不是我们想象的那样是个随机值。
%c - 将参数作为一个单个字符打印 %f - 将参数作为一个浮点型数字打印 %s - 将参数作为一个字符串打印 %% - 仅仅打印一个%符号 3.2 符号指令 符号指令是可选修饰符,被用来调整,补0...0 - 空白处补0 空白 - 在正数和负数前面补充空格 # - 数字格式 3.3 宽度指令 width指令被放置在任何符号字母的前面,用来指定转换结果的宽度。 如果输出结果宽度小于指定宽度,补充空格。...输出文本至少10个字符: 0000000005 3.4 精度指令 精度修饰符为.加上一个正数或者星号。 精度有以下作用: 如果转换类型为整数,精度就是打印的数字最小位数。...如果参数的数字位数小于精度,补0。 如果转换类型为浮点型,精度则指定了小数点后面的位数。默认的精度为6。 如果转换类型是文本字符串,精度指定了最大字符数目。...这是一个例子,显示如何将一个浮点数指定为小数点后3位: printf "%.3f" 1.61803398 输出: 1.618 当精度被设置为星号(*),那么精度的具体数值由后面的参数决定。
领取专属 10元无门槛券
手把手带您无忧上云