一;字符串简介
字符串(character string)是一个或多个字符的序列。比如:“i am a teacher!” 注意:双引号不是字符串的一部分,它的作用是告知编译器它包含起来的内容是字符串。对比单引号用于标识单个字符。
二;char类型数组和null字符
C语言当中,没有专门存储字符串的变量类型,字符串都被存储在char类型的数组当中(数组由联系的存储单元组成,同类型数据元素的有序序列)且使用空字符“\0”来标识字符串的结束。详细如下图:
注意:字符串和字符是不同的。比如:字符串常量“A”和字符常量‘A’它们的区别在于‘A’是基本类型(char),"A"是派生类型(char 数组)。另外区别“A”实际上是由两个字符组成的:‘A’+控制符。
三;常量和C预处理量
3.1;符号常量(明示常量)是在编译程序时,程序中所有的符号常量被替换为定义的初始值,且不会被程序无意间改变值。同时也是方便日后程序的修改。(预编译器可以使用#include包含其他文件的信息同时也可以用来定义常量)
3.2;定义符号常量格式:#define NAME value (详细参考下面例子)
#include <stdio.h> #define PI 3.14159 //定义一个PI字符常量 int main(void) { float area, circum, radius; printf("What is the redius of your pizza?\n") scanf("%f",&radius); area = PI * radius * radius; //使用字符常量,编译过程中自动转换为数值3.14159 circum = 2.0 * PI * radius; printf("Your basic pizza parameters are as follows:\n"); printf("circumference = %1.2f, area = %1.2f\n",circum,area); return 0; }
四;connst限定符
const关键字是C90标准新增的,作用是限定一个变量为只读。举例:
const int a = 12; //a变量在程序中不可更改为只读。具体以后详细讲解:
五;明示常量
明示常量相当于符号常量。常见使用如下:
头文件limits.h包含明示常量如下:
明示常量 | 含义 |
CHAR_BIT | char类型的位数 |
CHAR_MAX | char类型的最大值 |
CHAR_MIN | char类型的最小值 |
SCHAR_MAX | signned char 类型的最大值 |
SCHAR_MIN | signned char 类型的最小值 |
UCHAR_MAX | unsigned char 类型的最大值 |
SHRT_MAX | short类型的最大值 |
SHRT_MINN | short类型的最小值 |
USHRT_MAX | unsigned char 类型的最大值 |
INT_MAX | int类型的最大值 |
INT_MIN | int类型的最小值 |
UINT_MAX | unsigned int 的最大值 |
LONG_MAX | long类型的最大值 |
LONG_MIN | long类型的最小值 |
ULONG_MAX | unsigned long 类型的最大值 |
LLONG_MAX | long long 类型的最大值 |
LLONG_MIN | long long 类型的最小值 |
ULLONG_MAX | unsigned long log 类型的最大值 |
头文件float.h包含明示常量如下:
明示常量 | 含义 |
FLT_MANT_DIG | float类型的尾数位置 |
FLT_DIG | float类型的最少有效数字位数(十进制) |
FLT_MIN_10_EXP | 带全部有效数字的float类型的最小负指数(以10为底) |
FLT_MAX_10_EXP | float类型的最大正指数(以10为底) |
FLT_MIN | 保留全部精度的float类型最小正数 |
FLT_MAX | float类型的最大正数 |
FLT_EPSILON | 1.00和比1.00大的最小float类型值之间的差值 |
六;printf()函数
6.1;printf()函数为输出函数,且和scanf()函数一起称之为输入/输出函数。
printf()函数格式为:printf(格式字符串,待打印项目1,待打印项目2,。。。) 其中“格式字符串”是双引号括起来的内容,使用“转换说明”符号来指定“待打印项目”值代入的位置以及数据转换可显示的形式。“待打印项目”可以是常量,变量,表达式。举例:
#include <stdio.h> #define PI 3.14159 int main(void) { int number = 7; printf("The number is %d\n",number); //%d占位符,转换说明:有符号的十进制整数 return 0; }
注意:格式字符串中的转换说明一定要与后面的每个项目匹配。
6.2;转换说明把以二进制格式存储在计算机中的值转换成一系列字符(字符串)以便于显示。printf()函数常见转换说明符号如下图:
转换说明 | 输出 |
%a | 浮点数,十六进制数和p计数法(C99/C11) |
%A | 浮点数,十六进制数和p计数法(C99/C11) |
%c | 单个字符 |
%d | 有符号十进制整数 |
%e | 浮点数,e计数法 |
%E | 浮点数,e计数法 |
%f | 浮点是,十进制计数法 |
%g | 根据值的不同,自动选择%f,%e,%e格式用于指数小于-4或者大于或等于精度时 |
%G | 根据值的不同,自动选择%f,%e,%e格式用于指数小于-4或者大于或等于精度时 |
%i | 有符号实际值整数 |
%o | 无符号八进制整数 |
%p | 指针 |
%s | 字符串 |
%u | 无符号十进制整数 |
%x | 无符号十进制整数,使用十六进制数0f |
%X | 无符号十进制整数,使用十六进制数0F |
%% | 打印一个百分号 |
6.3;printf()转换说明修饰符
在%和转换字符之间插入修饰符可修饰基本的转换说明,比如:%4d 表示十进制整数位,保留4个最小字段宽度。如下表显示基本使用修饰符:
修饰符 | 含义 |
标记 | 标记包含5种类,详细查看下文标记表格。举例:“%-10d” |
数字 | 最小字段宽度 注意:如果该字段不能容纳带打印的数字或字符串,系统默认会使用更宽的字段。 举例:“%4d” |
.数字 | 精度 对于%e,%E,%f,转换,表示小数点右边数字的位数 对于%g,%G 表示有效数字最大的位数 %s 表示待打印字符的最大数量 整型转换,表示待打印数字的最小位数 举例:“%5.2f”打印一个浮点数,字段宽度5字符,其中小数点后面两位数字 |
h | 和整数转换说明一起使用,表示short int 或unnsigned short int 类型的值 举例:“%hu” |
hh | 和整数转换说明一起使用,表示signed char 或者 u |
首页 上一页 1 2 下一页 尾页 1/2/2 | |
【大 中 小】【打印】 【繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部】 | |
上一篇:C语言(1) | 下一篇:linux 进程通信之 守护进程 |