1.4 ASCII码、标准C库IO函数、逗号表达式、三目运算

一. ASCII码

可以在ununtu下查找ASCII码表:

man ASCII
功能:ascii - ASCII character set encoded in octal, decimal, and hexadecimal
		      字符    转换为        八进制   十进制        十六进制

最好能记住下面这几个:

Oct   Dec   Hex   Char
000   0     00    NULL '\0' -> (空白,什么都没有)
060   48    30    0
101   65    41    A
141   97    61    a

printf()函数输出格式

%d以十进制形式输出内容。
%o以八进制形式输出内容。
%x以十六进制形式输出内容。
%c以字符形式输出内容。
%f输出浮点型数据
%s输出字符串
%p输出指针地址

例:

#include <stdio.h>
int main(int argc,char *argv[])
{
	int a = 65;
	char b = '0';
	
	printf("a = %d\n",a); //65    
	printf("a = %o\n",a); //101   
	printf("a = %x\n",a); //41    
	printf("a = %c\n",a); //A     
	
	printf("b = %d\n",b); //48
	printf("b = %o\n",b); //060
	printf("b = %x\n",b); //30
	printf("b = %c\n",b); //'0'
	
	return 0;
}

输出结果如下:

/mnt/hgfs/1.22 Ubuntu-14.4share/C/daily --> :gcc -o printf printf.c 
/mnt/hgfs/1.22 Ubuntu-14.4share/C/daily --> :./printf
a = 65
a = 101
a = 41
a = A
b = 48
b = 60
b = 30
b = 0

二. 标准C库IO函数

printf()  -> 输出某段内存空间上值。
scanf()   -> 从键盘中获取一些值,将这些值存放到某些内存空间上。
#include <stdio.h>
int main(int argc,char *argv[])
{
	int a;
	scanf("%d",&a);  // 从键盘获取一个十进制数据,并存放在变量a对应的空间上
	
	printf("a = %d\n",a);  // 将a变量对应的空间的数据输出
	printf("&a = %p\n",&a);  // 将a变量的空间地址输出
	
	return 0;
}
/mnt/hgfs/1.22 Ubuntu-14.4share/C/daily --> :./IO
10
a = 10
&a = 0x7fffc081606c

三.逗号表达式

计算规则:从左到右依次计算,结果以最后一个表达式为准。
例:

#include<stdio.h>
int main(int argc, char *argv[])
{
	int a=1,b=5,c=10,d;
	d = (a=a+b,c=b+c,a+c);  //a=1+5 -> 6    c=5+10 -> 15    6+15 -> 21
	printf("d = %d\n", d);	//21
	
	return 0;
}
/mnt/hgfs/1.22 Ubuntu-14.4share/C/daily --> :gcc -o douhao douhao.c 
/mnt/hgfs/1.22 Ubuntu-14.4share/C/daily --> :./douhao
d = 21

此处举一个对我来说有点特殊的例子,因为最开始我无法理解为什么有括号还是会得出这个值:

#include<stdio.h>

int main(int argc, char *argv[])
{
	int a=1,b=2,c=3,d;
	d = (c=a+3,b-=a,b++);//1   // b=1 先将b的值赋值给d,然后再自身+1
	
	printf("%d\n", d);
	
	return 0;
}
/mnt/hgfs/1.22 Ubuntu-14.4share/C/daily --> :gcc -o douhao2 douhao2.c 
/mnt/hgfs/1.22 Ubuntu-14.4share/C/daily --> :./douhao2                
1

此处是先将b的值赋值给d,然后再执行的++。括号的含义表示将括号内的三个表达式放在一起而已,并无其它含义。

四. 三目运算

三目运算表达式形式
表达式 ? 结果1 : 结果2;

如果表达式为真,则结果就是结果1。
如果表达式为假,则结果就是结果2。
例:

#include<stdio.h>

int main(int argc, char *argv[])
{
	int a=1,b=2,c;
	c = (a>b?a:b);  // 求出a与b之间的最大值。
	
	printf("%d\n", c);
	
	return 0;
}
/mnt/hgfs/1.22 Ubuntu-14.4share/C/daily --> :gcc -o three three.c 
/mnt/hgfs/1.22 Ubuntu-14.4share/C/daily --> :./three
2
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值