day3:c基础的输入输出函数以及运算符

文章详细介绍了C语言的标准输出函数printf和输入函数scanf的使用,包括各种格式符和转义字符。此外,还讲解了算术运算符、赋值运算符、自增自减运算符以及关系、逻辑、条件和位运算符的用法。在编程实践中应注意运算符的优先级和特殊行为,如逻辑短路现象。
摘要由CSDN通过智能技术生成

一、输入输出函数

1、标准输出函数

printf("格式符+转义字符",输出表象);

格式符:

        %d,十进制输出有符号数

        %ld,十进制输出有符号长整型

        %f,输出float类型

        %lf,输出double类型

        %c,输出字符类型

        %s,输出字符串

        %u,无符号输出整形的十进制

        %#X/x:输出十六进制(无符号) ----->#输出前导符

        %#o:输出八进制(无符号)

        %.nf:输出小数点后n位,不足补0

        %-nd:以n个数据宽度靠左对齐的输出,不足补空格,超出全部输出(%nd:靠右对齐)

        %p:输出内存地址

转义字符:

\n:换行

\t:制表符

\r:回车,回到当前行的首位进行输出

\b:后退一格,回到上一个位置进行输出

2、标准的输入函数

scanf("格式符",变量的地址);

注意事项:

1、逗号后面的内容,是变量的地址

2、scanf的双引号内不要加\n

3、scanf是严格控制格式的函数,终端输入的格式要和双引号内的格式严格一致

scanf连续获取字符时吸收垃圾字符的方法:

1*、使用scanf严格控制格式的特点吸收垃圾字符,包括"%c %c %c"在输入多个字符间加空格吸收垃圾字符,或者分开输入,依次在%c前加空格,本质相同

2、用%*c抑制字符吸收一个字符,不推荐使用是因为用%*c吸收字符后无法获取

3*、使用getchar()吸收,与抑制字符不同的是可以通过定义变量得到getchar吸收的字符

3、单个字符的输入函数getchar()

        int getchar(void);

        功能: 从终端获取单个字,并返回该字符ASCII码

4、单个字符的输出函数putchar()

        int putchar(int c);

        输出单个字符       

二、运算符

1、算术运算符

        +        -        *        /        %

/:如果两边都是整形,则取整,如果两边都是浮点型,则整除

%:要求两边都是整形,

2、赋值运算符

        =        +=        -=        *=        ...

=:等号左边叫左值,右边叫右值,a=b就是把b的值赋给a

a+=b相当于a=a+b,把a+b的值赋给a,其余同理

3、自增自减运算符

        a++        ++a        a--        --a

++a和a++都可以实现a的自增,但步骤不同

++a是先自增,再把自增,再把自增后的值给b,所以++a和a都比原来+1

a++是先存原先a的值,再对a进行自增,最后把之前存的值给b,所以a++还是原来a的值,而a已经+1了

4、关系运算符

        ==        !=        >、>=        <、<=

==:两个等号是相等,=:一个等号是赋值

关系运算符通常用于有范围的关系大小判断

5、逻辑运算符

        &&        ||        !

&&:逻辑与,运算符两侧运算符都是真,结果才为真

||:逻辑或,都为假,才为假

!:a为0,则!a为1,非0即真

逻辑短路现象

逻辑侧表达式为,则结果为假,不再往右执行表达式

逻辑侧表达式为,则结果为真,不再往右执行表达式

6、条件运算符

表达式1?表达式2:表达式3

执行逻辑: 如果表达式1成立,执行表达式2,否则执行表达式3

a>b?a:b --->如果a>b,返回a,否则返回b

条件运算符是C语言中唯一一个三目运算符

7、逗号运算符

(表达式1,表达式2,表达式3,·····)

执行逻辑:

从左至右每一个表达式都会执行,取最右侧表达式的结果

8、sizeof运算符

sizeof,是C语言中的一个关键字,其求数据的大小,以字节为单位

sizeof()的结果,64位,unsigned long int;        32位,unsigned int;

求整形长度:sizeof(s)/sizeof(s[0])或sizeof(s)/sizeof(int)

求字符串长度,是计算整个字符串数组的长度,而不是到'\0'截止的长度

9、位运算符

>>        <<        &        |        ^        ~

>>:右移运算符,高位补符号位

<<:左移运算符,低位补0

&、|:按位与或,逻辑与逻辑与或相同

^:a^b,a异或b

~:按位取反,对每个位置都取反

位运算的方法:

0与任何数都是0,与运算用于给某一位置0

1或任何数都是1,或运算用于给某一位置1

0异或任何数都数本身,1异或任何数都是取反

10、运算符的优先级

()优先级最高,逗号运算符优先级最低

单算移关与,异或逻条符

 作业:

1.思维导图:有道云笔记

2-4有道云笔记

上课做练习的错误与总结:

1、做了前面带参宏定义带输入的简易计算器,

#define MUL(a,b) float(a/b)

这里用显性强转float应该是(float)a/b

2、做逻辑与或运算时应该按照与、或分块短路

3、!c不会改变c的值

4、预习时,遇到的“段错误,核心已转储”后面发现是"i = 0"

=是赋值,==才是相等,这样编译没有语法错误,把常量往前移可以避免。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值