《C Primer Plus》学习笔记(第三章到第四章)

第三章:数据和C
1.常量和变量
常量是整个程序运行中没有变化,变量会被改变或者赋值。

2.数据类型关键字
signed char 1 -128~127
signed short 2 -32768~32767
signed int 4 -2147483648~2147483647
signed long 4/8 -9223372036854775808~9223372036854775807
unsigned char 1 0~255
unsigned short 2 0~65535
unsigned int 4 0~4294967295
unsigned long 4/8 0~577731899414282239
单精度:float 4
双精度:double 8
高精度:long double 12/16
100u8 unsigned char
100u unsigned short
100U unsigned int
100l unsigned long
1.0f float
1.0lf long double

3.转义序列
\a 报警
\b 退格
\f 换页
\n 换行
\r 回车
\t 水平制表符
\v 垂直制表符
\ 反斜杠
’ 单引号
" 双引号
? 问好
\0oo 八进制值
\xhh 十六进制值

4._Bool类型
#include<stdbool.h> true 1 false 0 增加可读性

5.stdint.h 和 inttypes.h
创建了更多的整数类型

6.char
字符类型关键字,主要用来定义字符或者字符数组

计算机中的浮点数和整数在本质上不同,其存储的方式和运算过程有很大的区别。即使两个32位存储单元存储的位组合完全相同,但是一个解释为float类型,另一个解释为long,值是不一样的。

整数可以表示为十进制.八进制、十六进制。0前缀表示八进制,0x或者0X前缀表示16进制,l或者L前缀表示long,ll或者LL表示 long long。

主要讲述了数据类型以及数据的值,以及数据在计算机中的不同类型的存储,以及一些数据类型之间的关系,转换的结果,以及一些强制转换的错误。

数据类型的输出:
%d 十进制有符号整数 %ld 有符号的long %lld 有符号的 long long
%u 十进制无符号整数 %lu %llu同上
%f 浮点数
%s 字符串
%c 单个字符
%p 指针的值
%e 指数形式的浮点数
%x, %X 无符号以十六进制表示的整数
%0 无符号以八进制表示的整数
%g 自动选择合适的表示法

第四章:字符串和格式化输入/输出
1.字符串
字符串是一个或多个字符的序列
可以把数组看作是一行连续的多个存储单元。

使用字符串%s输入即可,不过要定义好字符数组来存放字符串

2.strlen()
在#include<string.h>库中
计算字符串的长度(不包含\0)\0是一个字符串的结束标志,一般输入系统会自动加上。

3.const
只读状态,在这个状态下的变量不能被改变,和#define的作用相似。
但是const比#define更加灵活

4.明示常量
一些定义好的一些常量,在一些库里存储,比如limits库中INT_MAX int的最大值,还有很多这样的常量,这些常量就是明示常量

5.printf()和scanf()
能够让用户可以和程序交流,我们的第一个程序hello world 就是printf输出的。
注意在使用printf输出数据的时候一定要注意输出的类型,类型不对可能会导致结果的异常,因为不同类型的所占字节数不同,存储的方式不一样,使用别的类型表达不安全。

scanf 读取基本变量类型的值 要加&
scanf 把字符串读入字符数组中,不要&

scanf("%c",&ch)从输入中的第一个字符开始读取 scanf(" %c",&ch)则从第一个非空白字符开始读取。

6.给字符串断行有3种方法
printf(“a”);
printf(“b”);

printf(“a
b”);

printf(“a”
“b”);

7.空白
空白包括空格、制表符和换行符,C语言使用空白分隔记号,scanf()使用空白分隔连续的输入项。

scanf和printf只是最基本的输出输入,一定要注意输入和输出的时候的类型转换问题和输入数据的类型判断,以及输出类型的显示格式,这些对于程序的运行起到至关重要的作用,在使用一些数据类型的转换声明的时候一定要多思考几遍。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值