C语言的初级学习

整数的分解:

对一个整数做%10的操作,就得到它的个位数;

对一个整数做/10的操作,就去掉了它的个位数;

对一个整数做/10再%10,便可得到它的十位数;

依次类推

#include<stdio.h>

int main(){
	
	int x;
	scanf("%d",&x);
	
	int b;
	int c=0;
	
	while(x>0){
		b=x%10;//得到此时x的个位数 
		//printf("%d",b); 
		c=c*10+b;//让c开始加上b 
		x/=10;//让x减掉个位数 
		//printf("x=%d,b=%d,c=%d",a,b,c); //调试查看每一步 
	}
	printf("%d",c);
	
	return 0;

break和continue:

break是打破循环,退出循环。continue是结束本轮循环,不再继续这轮循环的剩余指令,开始下一轮循环。

C语言的数据类型:(蓝色的是C99类型)

  1. 整数:char,short,int,long,long long
  2. 浮点数:float,doublelong double
  3. 逻辑:bool
  4. 指针
  5. 自定义类型

 类型的不同之处:

  • 类型名称:int,long,double
  • 输入输出格式:%d,%ld,%lf
  • 所表达数的范围:char<short<int<float<double
  • 内存所占据的大小:1字节-16字节
  • 内存中所表达形式:整数二进制数(补码),浮点数编码
C类型32位64位
char        11
short int22
long48
long long88
int44
long int48
long long int88
char*48
float44
double88

 sizeof——静态运算符,给出某个类型或变量在内存中所占据的字节数

  • sizeof(int)
  • sizeof(i)
#include<stdio.h>

int main()
{
	int a;
	a=6;
	printf("sizeof(long double=%ld\n)",sizeof(long double));
	printf("sizeof(a+1.0)=%ld\n",sizeof(a+1.0));//1.0使a+1.0变成double类型浮点数
	//但是由于sizeof是静态运算符,所以并不运算a+1.0 
	printf("sizeof(a)=%ld\n",sizeof(a));
	printf("a=%d\n",a);
} 



sizeof(long double)=16
sizeof(a+1.0)=8
sizeof(a)=4
a=6//但是由于sizeof是静态运算符,所以并不运算a+1.0 

int数据类型的数范围:

-2的31次方     到        2的31次方-1

char数据类型最大的数:

-128                到     127        (当127+1时,结果为-128)

,因为整数是以纯二进制方式进行计算的,若有unsigned,则为0 到255

 

 整数的输入输出:

只有两种形式:int或long long

%d:int 

%u:unsigned

%ld:long long

%lu:unsigned long long

#include<stdio.h>

int main()

{
	char a=-1;
	int b=-1;
	int c=-1;
	
	printf("a=%u,b=%u,c=%d",a,b,c);
} 

a=4294967295,b=4294967295,c=-1

 浮点类型:

类型字长范围有效数字scanfprintf
float32±10的±38次方,0,正负inf,nan7% f%f.%e
double64±10的±308次方,0,正负inf,nan15%lf%f.%e

注意:其中浮点的范围无法无限接近0

           带小数点的字面量是double而非float(float需要用f或F后缀来表明身份)

           printf用%f输出浮点数时,需注意输出值需是浮点数(带小数点)

           %e即输出科学计数法.

            浮点运算的精度f1==f2可能失败,应该fabs(f1-f2)<le-l2

            若想输出精度小数点,此时会对数值四舍五入。如2位小数,可%.2f.

%x.xf,第一个x表示输出字符数,第二个x表示小数点后几位

#include<stdio.h>

int main()
{
	printf("%.3f\n",0.0049);//此时对0.0049四舍五入
	printf("%.30f\n",0.0049);
//计算机并不能准确表达一个数,无法表达0.0049,便寻找一个离0.0049最近的一个数
	printf("%.3f\n",0.00049);
} 

0.005
0.004899999999999999800000000000
0.000

字符类型:

char是一种整数,也是一种字符类型。

用单引号表示的字符字面量:'1','a'

''也是一个字符

printf和scanf里用%c来输入输出字符

字符可以运算,两个字符的减,得到它们在ASCII码表中的距离

#include<stdio.h>

int main()
{
	char c=‘1’;//或char c;scanf("%c",&c);

	printf("%d\n",c);//输出整数 
	printf("%c",c);//输出字符 
} 


49//'1'对应的整数是49,'空格'对应的整数是32 
1

逃逸字符:

字符意义字符意义

\b   

回退一格\"双引号
\t到下一个表格位\'单引号
\n换行\\反斜杠本身
\r回车

逻辑运算:(结果为0或1)

运算符描述示例

结果

!a

a是对的则输出错,反之

&&a&&ba和b都是对的则对,反之
||a||b有一个真的则真,都是错的则错

优先级:!>&&>||      (仅仅略高于赋值运算符)

短路:逻辑运算符自左向右运算,若左边的数据已能决定结果则不会做右边的运算

如a==6&&b+=1,a==6||b==1      对于&&左边是错的则为错,||左边是对的则为对

条件运算符:

格式:   a=(a>20)?a-10:a+10;

条件,条件满足时的值和条件不满足的值

优先级:高于赋值运算符,低于其他运算符

逗号运算符:

用来连接两个表达式,并以其右边的表达式的值作为它的结果。

优先级:最低,因此逗号两边的表达式都会进行计算,但最终以右边的值作为结果

应用情景:for中,for(i=0,j=10;i<j;i++,j--)

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值