1118关于C语言中内存计算,和一些运算符以及scanf和printf运行机制

推荐用书:C语言 谭浩强 (薄本)

 

gcc 预编译、编译、汇编、链接

-E -o |-S  -o | -c -o | -o

生成  .i   |  .s   | .o  | a.out

汇编的最终目的:生成二进制文件

链接的最终目的:生成可执行文件

 

在位系统中数据类型在内存中所占的相应字节:

int 4B

float 4B

double 8B

char 1B

每个类型都有自身所占的位数,每个类型都有相应的数的表示范围,

同时每个类型分为无符号数和有符号数,有无符号数的表示范围不同

测数据类型的长度: sizeof()

 

intunsigned int为例进行数据类型所能表示相应数据长度的推导:

unsigned int   __________|__________|_

     0         232次方减一

二者之间的长度为232次方

int           ____|______|.______|_______

231次方-1  0    231次方

二者之间的长度为232次方

unsigned int的范围: 0~232次方减一

int的范围        :负232次方~ 232次方减一

 

有符号数和无符号数的计算(int unsigned int

1.int类型的输出占位符为:%d

 unsigned int的输出占位符为: %u

2.定义一个数并且给他赋值后不能输出的可能原因:可能是赋的值太大了,超出了该类型的表示范围

3.数值类型决定了变量的范围

数据名字确定了首地址

(计算机中地址是连续的,我们的地址分配在定义变量的时候就已经分配了)

4.intunsigned int两个类型的数值进行运算,默认的计算类型为unsigned int

(因为unsigned int的精度比int的精度大)

 输出时占位符为%d则用类型int计算,

输出时占位符为%u则用unsigned int进行计算

 

若在定义变量时: int a;

printf(“%d\n”,a);  会发现输出的结果是一堆系统随机分配的数字

 

 

char的编码方式:ASCII

char   ——   ASCII

97 a

65 A

 

char类型的表示范围:-128~127

unsigned char:   0~255

 

转义字符:\n  \’   \”

 

字符赋值的方法:’ ‘ 

字符的占位符: %c

字符串的占位符:%s

‘\0’ 作为字符串的结束标志

“China”  6个字符的内存大小,但是\0并不输出

 

混合运算:由低到高:char short -> int ->unsigned int -> long -> double

 

float类型的占位符:%f

若控制输出小数点后几位: %.nf

 

运算符:

算数运算符: +  -  *  /

关系运算符:>  <  ==  >=  <=  !=  

逻辑运算符:!  &&()  ||

位运算符:<<  >>  ~  |  ^  &(与乘)

赋值运算符:=及其扩展赋值运算符

条件运算符:?:(三目运算符)

逗号运算符:( , )

指针运算符:*&

 

关于++--

1.++在右边时,先赋值再运算: int a=3,b;

b=a++;(此时b=4,a=3)

2.++在左边时,先运算再赋值:int a=3,c;

c=++a;(此时c=4,a=4)

 

scanf:我们在用scanf输入时,一定要跟着scanf的格式走

printfscanf的运行机制:

printf:输出时使用,表示输出一个数值

scanf:输入时使用,&,表示取输入一个值得这个地址

 

 

 

布尔类型(bool:这个变量只有两个值01

C语言中,使用bool要有相应的头文件:stdbool.h

 

= 赋值

== 比目运算符  if(只能用==)

 

 

if: if...else

for:for( ; ; )

while:先判断再执行

do...while:先执行再判断

 

宏定义: #define 一些大写字母 数字

eg: #define MAX 10

使用gcc编译时,宏定义在预处理的时候被处理

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值