您的位置:首页 > 其它

字符串和格式化输入/输出

2013-04-08 21:27 190 查看
本章主要讨论格式化输入、输出,字符串做简要概述,等11章详细讲解

字符串:是指连续的存储单元,末尾有'\0'标示结束 所构成的一个一个数据结构,而连续的存储单元,是数组的结构,所以字符串与数组的唯一区别是结尾多了一个'\0'。'\0'是什么呢。我们知道这是一种转义字符序列代表ascii码的第一个,对于的ascii符号应该是null。

字符串用""来表示

那么'a',"a"有什么区别呢,区别在于"a"的存储结构相对于字符'a'多了一个'\0'空字符。如下是字符串的存储结构,这里用的是字符形式,表现,当然实际存储的是二进制了。



字符串声明与定义

char a[] = "asd"; //这数组方式定义,后面会讲到数组,这里是一种不定元素个数的定义字符串方式,其实在编译期间,c语言也是计算了这个数组里面的元素个数的。只是这种方式,减少了程序员对于计算字符个数的成本
char a[4] = "asd";//这种也是数组方式定义,之所以写4而只有三个字符的原因,前面已经提到,字符串,还有一个隐式的空字符'\0'
char *a = "asd"; //这是以指针方式定义字符串,指针是C语言里面一个难点。后面会详细讲解。

//其实还有一个malloc方式,暂时不提及了。


strlen和sizeof

strlen是求一个字符或字符串有几个字符,当然如果实参是字符的话,肯定是1

sizeof是字符或字符串占几个字节。

常量的定义

//目前学习两种常量定义法

//这种属于C预处理器定义常量的方法,C预处理器。是指在运行程序前,先会进行预处理,在这个阶段,所有预处理命令将会执行完成。即在程序真正运行时,所有用到这个标示符的,都会替换成常量
#define MAX 100  
#define STRING "sbuiaspofkf"
#define C 's'
-----------------
//这种const 修饰的变量。在程序运行期间一般不可以改变,其实也可以改变,后面会讲到const的详细用法。
const int MIN = 12;
const char cha = 'c';


printf()和scanf()

printf()是一个不定参的函数,可以根据转换说明符,输出对应于转换说明符的数据类型,并且可以在实际变量与转换说明符,不对应的情况下,根据转换说明符,做强制转换输出,当然不会影响实际变量。如下,介绍转换说明符对应的类型



这里我们需要记住几个常用的转换说明符,比如%c,%d,%s,%f,%x,这些其实也在前面的讲解中经常用到

想要打印一个%,只需要用两个%%就行,如printf("%f%%",0.12);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: