吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4102|回复: 4
收起左侧

[C&C++ 转载] 【每天学点C语言】菜鸟学习笔记,第四天:C数据类型笔记03,每日更新!

[复制链接]
ql_zth 发表于 2015-2-9 20:24
本帖最后由 ql_zth 于 2015-2-9 20:27 编辑

这两天停更说明:首先,向各位等我更新的友友道歉,这两天由于客观原因没有更新→→客观?   我那一块区域的变压器可能由于使用太久于前天罢工了,直到今天下午才修好(我想如果不是围了几百人在那里,今晚可能继续无法更新!那个变压器在半年前就发生过爆炸,当时楼主以为在放烟火,,,汗),不废话了,开更!、、、

本次为字符篇(0本来想一次搞定,但贪多嚼不烂),学到这里,相信有的友友还是很迷糊,有点小担心:现在就不懂,以后我可以学好吗?。。。我想说的是,可以的!现在忘了没关系,这个本来就不是靠强记的,在以后的学习中用的多了自然而然就记住了!

加油!相信梦想的力量!(这是我知己和我说过的话,现在我赠送给大家自勉!)
#〓相〓〓〓〓〓信〓〓〓〓 〓〓未〓〓〓〓〓来〓#
   ↓      ↓         ↓       ↓
 ☆★☆   ☆★☆    ☆★☆   ☆★☆
☆ 梦 ☆ ☆ 想  ☆    =   ☆ 力 ☆ ☆ 量 ☆
 ☆★☆   ☆★☆    ☆★☆   ☆★☆
  ↓        ↓        ↓      ↓
  把     握      自     己





                                  15.02.09,C数据类型笔记之字符篇



每天一点小知识:
程序查错:
当编译器报错时会提示在第几行,但实际错误往往在前一行!




一、  型数据舍入误差。
第二天·笔记·补充中·有说明·(其实就是精度问题)


二、字符型数据(这个楼主就不多说了,自己看吧)
字符型数据是用单引号括起来的一个字符。例如:
'a'、'b'、'='、'+'、'?'
都是合法字符型数据。

在C语言中,字符型数据有以下特点:
  • 字符型数据只能用单引号括起来,不能用双引号或其它括号。
  • 字符型数据只能是单个字符,不能是字符串。
  • 字符可以是字符集中任意字符。但数字被定义为字符型之后就不能参与数值运算。如'5'和5 是不同的。'5'是字符型数据,不能参与运算。
转义字符转义字符是一种特殊的字符。转义字符以反斜线"\"开头,后跟一个或几个字符。转义字符具有特定的含义,不同于字符原有的意义,故称“转义”字符。例如,在前面各示例中printf函数的格式串中用到的“\n”就是一个转义字符,其意义是“回车换行”。转义字符主要用来表示那些用一般字符不便于表示的控制代码。
常用的转义字符及其含义
转义字符转义字符的意义ASCII代码
\n回车换行10
\t横向跳到下一制表位置9
\b退格8
\r回车13
\f走纸换页12
\\反斜线符"\"92
\'单引号符39
\”双引号符34
\a鸣铃7
\ddd1~3位八进制数所代表的字符
\xhh1~2位十六进制数所代表的字符

广义地讲,C语言字符集中的任何一个字符均可用转义字符来表示。表中的\ddd和\xhh正是为此而提出的。ddd和hh分别为八进制和十六进制的ASCII代码。如\101表示字母"A" ,\102表示字母"B",\134表示反斜线,\XOA表示换行等。

【例3-8】转义字符的使用。
  • #include<stdio.h>
  • int main(void){
  •     int a,b,c;
  •     a=5; b=6; c=7;
  •     printf(" ab c\tde\rf\n");
  •     printf("hijk\tL\bM\n");
  •     return 0;
  • }


字符变量字符变量的类型说明符是char。字符变量类型定义的格式和书写规则都与整型变量相同。例如:
char a,b;
字符变量在内存中的存储形式及使用方法每个字符变量被分配一个字节的内存空间,因此只能存放一个字符。字符值是以ASCII码的形式存放在变量的内存单元之中的。

如x的十进制ASCII码是120,y的十进制ASCII码是121。对字符变量a、b赋予'x'和'y'值:
a='x';
b='y';
实际上是在a、b两个单元内存放120和121的二进制代码:


所以也可以把它们看成是整型量。C语言允许对整型变量赋以字符值,也允许对字符变量赋以整型值。在输出时,允许把字符变量按整型量输出,也允许把整型量按字符量输出。

整型量为二字节量,字符量为单字节量,当整型量按字符型量处理时,只有低八位字节参与处理。

【例3-9】向字符变量赋以整数。
  • #include<stdio.h>
  • int main(void){
  •     char a,b;
  •     a=120;
  •     b=121;
  •     printf("%c,%c\n",a,b);
  •     printf("%d,%d\n",a,b);
  •     return 0;
  • }



本程序中定义a,b为字符型,但在赋值语句中赋以整型值。从结果看,a,b值的输出形式取决于printf函数格式串中的格式符,当格式符为"c"时,对应输出的变量值为字符,当格式符为"d"时,对应输出的变量值为整数。

【例3-10】
  • #include<stdio.h>
  • int main(void){
  •     char a,b;
  •     a='a';
  •     b='b';
  •     a=a-32;
  •     b=b-32;
  •     printf("%c,%c\n%d,%d\n",a,b,a,b);
  •     return 0;
  • }



本例中,a,b被说明为字符变量并赋予字符值,C语言允许字符变量参与数值运算,即用字符的ASCII 码参与运算。由于大小写字母的ASCII 码相差32,因此运算后把小写字母换成大写字母。然后分别以整型和字符型输出。
字符串字符串是由一对双引号括起的字符序列。例如: "CHINA" , “C program” , "$12.5" 等都是合法的字符串。字符串和字符不同,它们之间主要有以下区别:
  • 字符由单引号括起来,字符串由双引号括起来。
  • 字符只能是单个字符,字符串则可以含一个或多个字符。
  • 可以把一个字符型数据赋予一个字符变量,但不能把一个字符串赋予一个字符变量。在C语言中没有相应的字符串变量,也就是说不存在这样的关键字,将一个变量声明为字符串。但是可以用一个字符数组来存放一个字符串,这将在数组一章内予以介绍。
  • 字符占一个字节的内存空间。字符串占的内存字节数等于字符串中字节数加1。增加的一个字节中存放字符"\0" (ASCII码为0)。这是字符串结束的标志。

例如,字符串 "C program" 在内存中所占的字节为:


字符'a'和字符串"a"虽然都只有一个字符,但在内存中的情况是不同的。

'a'在内存中占一个字节,可表示为:


"a"在内存中占二个字节,可表示为:





补充:
1、二级考试考点
舍入误差例子:
1.0/3*3=1.000000
1   /3*3=0.000000
3/2=0.000000
计算代码方:
#include<stdio.h> int main(){printf("%f\n",3/2);    //其他的自己把3/2替换即可}

2、ASCII码表(对于这个,楼主表示不用全记,如视频说的那样记住A-Z和a-z,字符0-9)


第一部分:ASCII非打印控制字符表

ASCII表上的数字0–31分配给了控制字符,用于控制像打印机等一些外围设备。例如,12代表换页/新页功能。此命令指示打印机跳到下一页的开头。(参详ASCII码表中0-31)

第二部分:ASCII打印字符

数字 32–126 分配给了能在键盘上找到的字符,当您查看或打印文档时就会出现。数字127代表 DELETE 命令。(参详ASCII码表中32-127)

ASCII码表0-127


BinDecHex缩写/字符解释
00000000000NUL(null)空字符
00000001101SOH(start of headling)标题开始
00000010202STX (start of text)正文开始
00000011303ETX (end of text)正文结束
00000100404EOT (end of transmission)传输结束
00000101505ENQ (enquiry)请求
00000110606ACK (acknowledge)收到通知
00000111707BEL (bell)响铃
00001000808BS (backspace)退格
00001001909HT (horizontal tab)水平制表符
00001010100ALF (NL line feed, new line)换行键
00001011110BVT (vertical tab)垂直制表符
00001100120CFF (NP form feed, new page)换页键
00001101130DCR (carriage return)回车键
00001110140ESO (shift out)不用切换
00001111150FSI (shift in)启用切换
000100001610DLE (data link escape)数据链路转义
000100011711DC1 (device control 1)设备控制1
000100101812DC2 (device control 2)设备控制2
000100111913DC3 (device control 3)设备控制3
000101002014DC4 (device control 4)设备控制4
000101012115NAK (negative acknowledge)拒绝接收
000101102216SYN (synchronous idle)同步空闲
000101112317ETB (end of trans. block)传输块结束
000110002418CAN (cancel)取消
000110012519EM (end of medium)介质中断
00011010261ASUB (substitute)替补
00011011271BESC (escape)溢出
00011100281CFS (file separator)文件分割符
00011101291DGS (group separator)分组符
00011110301ERS (record separator)记录分离符
00011111311FUS (unit separator)单元分隔符
001000003220(space)空格
001000013321!
001000103422"
001000113523#
001001003624$
001001013725%
001001103826&
001001113927'
001010004028(
001010014129)
00101010422A*
00101011432B+
00101100442C,
00101101452D-
00101110462E.
00101111472F/
0011000048300
0011000149311
0011001050322
0011001151333
0011010052344
0011010153355
0011011054366
0011011155377
0011100056388
0011100157399
00111010583A:
00111011593B;
00111100603C<
00111101613D=
00111110623E>
00111111633F?
010000006440@
010000016541A
010000106642B
010000116743C
010001006844D
010001016945E
010001107046F
010001117147G
010010007248H
010010017349I
01001010744AJ
01001011754BK
01001100764CL
01001101774DM
01001110784EN
01001111794FO
010100008050P
010100018151Q
010100108252R
010100118353S
010101008454T
010101018555U
010101108656V
010101118757W
010110008858X
010110018959Y
01011010905AZ
01011011915B[
01011100925C\
01011101935D]
01011110945E^
01011111955F_
011000009660`
011000019761a
011000109862b
011000119963c
0110010010064d
0110010110165e
0110011010266f
0110011110367g
0110100010468h
0110100110569i
011010101066Aj
011010111076Bk
011011001086Cl
011011011096Dm
011011101106En
011011111116Fo
0111000011270p
0111000111371q
0111001011472r
0111001111573s
0111010011674t
0111010111775u
0111011011876v
0111011111977w
0111100012078x
0111100112179y
011110101227Az
011110111237B{
011111001247C|
011111011257D}
011111101267E~
011111111277FDEL (delete)删除




第三部分:扩展ASCII打印字符

扩展的ASCII字符满足了对更多字符的需求。扩展的ASCII包含ASCII中已有的128个字符(数字0–32显示在下图中),又增加了128个字符,总共是256个。即使有了这些更多的字符,许多语言还是包含无法压缩到256个字符中的符号。因此,出现了一些ASCII的变体来囊括地区性字符和符号。例如,许多软件程序把ASCII表(又称作ISO8859-1)用于北美、西欧、澳大利亚和非洲的语言。



本节视频链接:
http://pan.baidu.com/s/1dDerTzN 密码:0emd



加油,相信梦想的力量!.jpg

免费评分

参与人数 3热心值 +3 收起 理由
小人物241 + 1 热心回复!
风霜 + 1 我很赞同!
简简-单单 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

kawaii 发表于 2015-3-14 18:52
不错,学习了
readwrite 发表于 2015-2-10 15:22
william87682 发表于 2015-2-9 20:29
t9733 发表于 2015-4-11 19:57
多谢楼主分享。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-24 03:22

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表