|

楼主 |
发表于 2005-4-9 19:28:34
|
显示全部楼层
第一个printf函数现在第一行左端开始输出“ ab c”(注意a前有空格),然后遇到“\t”,它的作用是跳到下一个制表位,也就是说第九列。然后再从第九列开始输出de,之后\r要求我们返回该航行首,也就是本行的第一列,输出f,然后\t,再次从第9列开始输出,g.\n还行至下一行,也就是第二行。
第二个printf函数,
输出h,
光标移至第九列
输出i,
退格
退格
(目前是第七列)
输出j k
整个程序运行完成后,将会是以下结果
f gde
h j k
3.5.2 字符变量
字符型变量是用来存放字符的变量。
例如
char name;
name='wind_colors';
注意:字符值必须用引号。
3.5.3 字符数据在内存中的存储形式及其使用方法
将一个字符常量放到一个字符变量中,实际上并非将字符本身放入到内存单元中,而是将该字符相应的ASCII代码存到该单元中。例如,通过ASCII表,我们可以查到a的的ASCII值为97,然后,C会把a转换成97再转换成二进制01100001存储到内存中。
例3.6 向字符变量赋以整数
main()
{
char char1,char2;
char1 = 97,char2 = 98;
printf("%c%c\n",char1,char2);
printf("%d%d",char1,char2);
}
之后,运行程序会得到这个结果,看看是否和你想象的一样:
a b
97 98
小技巧: 大小写字母的转换
1》在ASCII代码中小写字母比其相应的大写字母的ASCII码大32。反之。……。
2》c允许字符数据与整数直接进行算术运算。
3》字符数据与整型数据可以相互赋值。如
int i;
char c;
i = 'a';
c = 97;
例3.7
main()
{
char c1,c2;
c1 = 'a';
c2 = 'b';
c1=c1-32;
c2=c2-32;
printf("%c%c",c1,c2);
}
运行结果
A B
3.5.4 字符串常量
注意:字符常量不等于字符串常量。
字符常量使用‘’,而字符串常量使用“”
字符串常量不可以付给字符变量,如
char c;
c = "a";
是极其错误的。
为什么是错误的呢??
因为字符常量在内存中使用一个单元,但字符串常量使用两个(1个单元用于本身字符的存储,另一个单元用于串结束符\0的存储,当然,这一切工作是由c完成的,所以,是不可见的)
把两个单元量的数据存储于一个单元显然是非常可笑的。
3.6 变量赋初值
例如
int a= 3;
float f=3.5;
chat c='a';
int a,b,c=5;
//这种方法是正确的,也很方便,但是他的意思是定义a,b,c为整型,且c的初值为5,千万不要搞错
int a=b=c=5;
//a,b,c初值是5,但并不是他们的关系是相等的。请注意。
上面的语句相当于
int a;
int b;
int c;
a =5;
b=5;
c=5;
3.7 各类数值间的混合运算
3.8 算术运算和算术表达式
待续 |
|