c语言学习笔记,数据类型、运算符和表达式等。

1.24

  1. double型 内存存储

3

2.Left value right value  左值 右值;只能放在赋值运算符左边的叫做左值,只能放在右边的叫右值 ;常量都是右值 。

没有名字的变量称为匿名变量或临时变量;所有的匿名变量都是右值;

left value    locatable可取地址的 ;能取地址的值就是左值,不能取地址的就是右值。

rightvalue   readable只读

Const恒定的   定义 const int i = 10  后续i的值不会再变化,变为只读变量。

3.++自加运算符: 后加加i++ 先用再加,前加加++i 先加后用;i=2,i++表达式是匿名空间,它会复制出一个空间出来为2,故打印出为2,原来i的空间变为3;前加加效率更高,因为不用开辟新空间。

4.混合运算

隐式转换级别表

=33.600000。注意这里3 / 5.0 =0.6

 输出>0, 因为unsigned级别高,int i会隐式转换为unsigned型,-6变为6,和为9,故大于0.

5.显示转换:

,暂时转换为需要的类型,会开辟一个临时空间,并不会影响操作数的本身。

=0.600000

忽略9的作用,不做四舍五入。输出1.234567

6.不同类型的混合赋值:

将浮点型赋值给整型,小数截断

输出12

将整型赋值给浮点型,

输出12345.000000

将int型往short型赋值,高位截断,只保留低字节数据,

输出5678的十进制为22136

将short型往int型赋值,  高位补0(实际上补的是符号位)

输出00001234的十进制为4660.

若s=0x8234,则s的最高位是1,表示负数,往i空间填入时,高位补F,符号位扩展,

输出-32204. 不出错的原因是运算时 short必转为int。

若定义unsigned short i = 0x8234,

,输出33332,

,因为没有符号位了,直接补0.

将int赋值unsigned int ,

输出FFFFFFFF,

输出-1,

输出2的31次方-1.  注意有无符号,计算机将不同解读,有符号就补码解读,无符号就会看做一个很大的数。

第四章 顺序程序设计

数据的输入输出

输入输出的基准点为内存。

putchar(int)函数,最基本的函数,输出一个字符

getchar输入一个字符

,将getchar的返回值(是int型 字节4)赋值给c(char型 字节1),会造成高位截断。

puthcar键盘输入时  会进入缓冲区(队列 先进先出),防止cpu资源浪费。getchar再往缓冲区取一个字符出来。

  1. printf函数​​​​​​​  返回值+函数名+形参  

“ ”就是const char * 叫做字符串常量。  

%d是占位符,由函数的下一个参数决定。

输出Hello,World! 1234 。

 输出 10 + 20 = 30.

占位符应于输入参数个数保持一致。

各类占位符:

%d与%i:都是有符号的十进制

%

 八进制,无符号的十进制,小写、大写十六进制

%e E:输出指数形式。double型,float型也对因为必转

%m.n:来制定m是总宽度,n是保留几位小数。

。若是实际长度大于m则仍输出实际长度。

%f :小数点。

%数字d/f,就输出几位。 若数字大于实际长度 则在前面补空格 若%0数字d,则补0.  若数字为负数,则在后面补

输出1234  ABC。

%g G:自己选择,%g(%G) 表示浮点数不显无意义的零"0"

%a A:%a(%A) 表示浮点数、十六进制数字和p-(P-)记数法(C99)。

%c:打印字符

%s:const char * (字符串常量)就是个地址 。

%p: 地址

输出

%%:%

%#0/#x:意思是提醒输出的是八进制或十六进制

 输出Helloret=5,后面ret输出的是前一个printf输出的字符个数。

scanf函数

​​​​​​​​​​​​​​

&i这里必须取地址

原因:c语言中被调函数(这里是scanf)无法修改主调函数,只是修改复制品,只是值传递

指针传参:通过指针的间接访问,将地址传过去,实现被调修改主调。

Scanf中 %d中除了占位符 其他一概不写。

如果输入的数据有两个及以上,则在实际输入时中间可以用空格或者table或者回车来分隔。

double f1,f2;

scanf(“%lf%lf”,&f1,&f2);   scanf函数中要分清float和double 是“%f”还是”%lf”,要匹配,不然程序会崩溃,原因是scanf是找地址。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值