c语言学习--操作符用法

1,加减乘除取模:

都是用在算法上的,其中+-*/是直接用在外面的,例如:

        int a=1;int b=2;

        c=b-a;

        printf("%d\n",c);

当然取模也是可以的,而取模使用%,其概念是将两个参数相除取余数

2,赋值操作符:一个将算法简便化的操作符

        例如(+=/-=/...),是将自身进行算法,就好像下面这样:

                int a=1;int b=3;

                a+=b;

        其中a+=b就是a=a+b的意思,最终的结果就是4

3,单目操作符:进行参数自我加减的

       (1) 例如(++/--),效果如下:

                int a=2;

                a++就会将整形a赋值为3了,当然,++a也是这样,但是这两个会存在一定的差别:

        (2)这就是涉及到前置后置的点了,

                前置:++a,这样会将a赋值多一个数,并且会将这个赋值之后的a作用在算法里面,也就是先赋后用;

                后置:a++,这样也会将a赋值多一个数,但是只会将这个还没赋值a作用在算法里面,也就是先用后赋。

4,强制类型转化:将一个数据类型转换为另一个数据类型的操作

        例如以下:

                float x = 10.75;//这个是浮点数

                 int y = (int) x;//通过用(int)的方式将浮点数转换成整形,其中的int可以是任意别的形式,float也是可以改变的;     而结果就是y=10

5,printf的剖析:

        (1)占位符,有这么多,但是用得比较多的就是其中几个,多做实践就可以知道那些用的多了hh

        (2)输出格式:限定宽度%4d(向右对齐);倘若想要向左对齐就在前面加上一个空格。(上面的4是可以改变的,任意数值)

        (3)总是显示正负号:将(%d)变成(%+d)

        (4)限定小数位数:(%.2f)(2的位置是限定的位数)  

        (5) 然后就是对printf的以上操作符都是可以结合使用的,例如(%6.2f)里面就结合了限定宽度6个以及浮点数小数后面保留2位

        (6)参数传参:(%*.*f),这个是最小宽度和小数位数的传参,都可以用*来代替,通过printf()的参数传入,如下:     (这个点细讲,因为我自己不是很会,特别做一下记录)

              #include <stdio.h>

                int main()

                {
                        printf ( "%*.*f\n" , 6 , 2 , 0.5 );
                        return 0 ;
                }
                        // 等同于printf("%6.2f\n", 0.5)
                这样做的方法就是可以使两个参数更加灵活,可以通过代数将不同变量带入
6,scanf输入功能:
        (1)一个向用户索取参数值的函数,用法如下:
                int main()
                {
                        int cj =0;
                        printf("请输入成绩:");
                        scanf("%d",&score);  //&的使用是因为该位置要放一个地址,而使用这个也可以构成一个地址(scanf中)
                        printf("成绩是:%d\n",score);
                        return 0;
                }  
        (2)原型定义在stdio中,语法和printf相似==>scanf("%d",&i),百分号那个位置放占位符,是提取数据的类型,也可以用多个来表达==>scanf("%d%d%f%f",&i,&j,&x,&y);   这样的输入会一一对应到数据里面,但是注意不能玩花的,类型输入不对应%下的类型会出现错误的(多数据输入的时候需要用空格、空白字符、换行符、制表符来分隔开, 但是,用了什么隔开,输入的时候就也要用什么隔开
        (3)scanf的返回值:
                返回一个整数,表示成功读取了几个数;如果没有任何项或者匹配失败就会返回0; 如果在成功读取任何数据之前,发⽣了读取错误或 者遇到读取到⽂件结尾,则返回常量 EOF
                可以怎样去提取这个返回值呢?如下:
                        int r=scanf(....忽略)
                        printf("r=%\n",r)
                注:这里可以用一个提前终止的键:CTRL+z(点一次不行就点多两次),如果一个数字都不输入就会报-1也就是EOF
           (4)占位符:这就要copy咯
                • %c :字符;
                • %d :整数;
                • %f float 类型浮点数;
                • %lf double 类型浮点数;
                • %Lf long double 类型浮点数;
                • %s :字符串;
                • %[] :在⽅括号中指定⼀组匹配的字符(⽐如 %[0-9] ),遇到不在集合之中的字符,匹配将会停止。
             (5)复制忽略符:对待可能输入不符合预期的格式
                
                类似这样:scanf("%d-%d-%d",&year,&month,&day) 输入的时候需要严格按照百分号键的-来输入;
                这样就会产生不符合原本预期输入的状况,于是就有了 %*c 来造化,像这样:
                         scanf ( "%d%*c%d%*c%d" , &year, &month, &day);
                不论我们输入时在中间加什么来连接都可以有分隔的效果,因为这个 %*c 是将数据忽略的,忽略之后就可以变成空格了
                这个点%*后面跟的好像是类型,也就是说在占位符中间加上一个*就会被系统自动忽略了
  • 16
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值