栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

学习c语言的第二天

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

学习c语言的第二天

8、字符常量及字符变量

1)大写字母转小写字母

2)计算机没有必要直接存储字符,可以用某个数值来代替字符

printf("sizeof HelloWorld = %dn", sizeof("HelloWorld"));输出

//在字符串结尾处为了标记字符串已经结束,会填入’0‘用于标记字符串结束 

‘'  HelloWorld字符串被我们强行截断了,printf函数只打印出了Hello就认为结束了

'12'换行继续输出

 

 

听课重点

-如何表示字符并打印、如何定义字符与变量、ASCII、转义字符

9、printf函数详细解析

1)printf("XXX占位1 XXX 占位2 XXX占位3", 替换1, 替换2, 替换3);

有以下特点 

-printf 是一个变参函数(参数的数量和类型不确定)

-printf 的第一个参数是字符串

-printf 的第一个参数是需要输出的字符以及需要被替换的占位符

-printf 的第二及后续参数将依次替换占位符

-占位符的类型和数量需要与后续的参数类型和数量对应

2)整数类型的占位符

-有符号整型的类型提升

对于有符号位的整型 char , short ,传入 printf 的可变参数时,会被提升为 int 。而比 int 更高级的 整型则不发生变化。

所以,在处理 char , short , int 时,均可使用 %d 来占位。 而在Visual Studio中 int 与 long 的范围一致,按理来说也可以使用 %d 来占位。 但是为了程序的可移植性,在切换到别的平台下时, int 和 long 有可能不一致。 所以,请使用 %ld 来为 long 占位。更高级的 long long 则需要使用 %lld 来占位。

结论: char,short,int使用 %d 。 long使用 %ld 。 long long使用 %lld 。

-无符号整型的类型提升

对于无符号位的整型 unsigned char , unsigned short ,传入 printf 的可变参数时,会被提升 为 unsigned int 。而比 unsigned int 更高级的整型则不发生变化

对于无符号整型,需要将 d 替换成 u 表明最高位不被看作符号位,而是数据位。

结论: unsigned char,unsigned short,unsigned int使用 %u 。 unsigned long使用 %lu 。 unsigned long long使用 %llu

- 浮点类型的类型提升

float 会被提升为 double , double 不发生变化。

结论: float,double均使用 %f

3)转换规范

前面称 以%开始的一串字符 为 占位符 。这是一个便于理解的说法,其实这个说法并 不准确。 更准确地说,它们应该被称为 转换规范

-总览

    零个或多个标志字符(-,+,0,#)。

    一个可选的十进制整数常量表示的最小字段宽度。

    一个可选的用点号表示的精度范围,它的后面可以跟一个十进制整数。

    一个可选的长度指示符,可以用下列字母组合之一来表示:h、hh、l、LL,z。

    由单个字符表示的转换操作,取自下面这个集合:c、d、e、E、f、i、o、s、u、x、X

-转换操作

直接上图,相当清楚

注意   

        -为了保证转换正确,请严格使用与类型对应的转换操作

        -初始化的值不得超过了数据类型可以容纳的数值范围

        -e与E的区别为,一个使用小写e,一个使用大写E。

        -o,x,X 转换操作,将获取sizeof(unsigned int)字节二进制数据。 o将数据按照无符号整型转换为八进制字符并输出。 x,X将数据按照无符号整型转换为十六进制字符并输出。 x与X的不同在于,一个使用小写字母,一个使用大写字母。

-长度指示符

在转换操作前增加一个 l 长度指示符,可以将转换操作获取的二进制长度升为更高一级的类型长度。

在转换操作前增加一个 h 长度指示符,可以将转换操作获取的二进制长度降为更低一级的类型长度。

 -精度

 转换操作可以制定一个可选的精度范围,用一个点号以及它后面一个可选的十进制正数表示。

精度范围用于控制:

1. d、i、o、u、x、X所打印的最小数字位数,不足将补齐。

2. e,E,和f转换中小数点右边的数字位数       

 -最小字段宽度

 最小字段宽度指定输出的字符最小为多少个字符,如果不足,将使用空格补齐到指定的最小宽度

    -标志

当我们使用了最小字段宽度时,如果字符不足最小宽度,那么将会用空格补齐到最小宽度。如果指定 了 0 作为标志,则会用字符0,来补齐到最小宽度。

- 打印的字符左对齐

+ 总是产生符号,+(正数)或-(负数)

# 八进制前加0,十六进制前加0x

 

听课重点

-类型提升、转换操作、长度指示符、精度范围、最小字段宽度、标志

日总结,今天学的信息比昨天大了很多,不过弄明白后还是易懂的。将课程给的pdf做了整理,

@你好编程

明天继续奥里给

暑期编程PK赛 得CSDN机械键盘等精美礼品!
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1015790.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号