当前位置: 首页 > news >正文

C语言复习2:键盘录入,字符串变量定义,流程控制语句

## 键盘录入scanf
        - scanf,是scanner format的缩写
        - 作用:获取用户在键盘上输入的数据,并赋值给变量。注意第一个参数中不写换行,即
            scanf("%d\n",&变量名);  //不妥
            scanf("%d",&变量名);    //正确

        - 如果想同时录入两个或两个以上的变量:记得在占位符中间加上空格即可
          scanf("%d %d %d ……",&变量名1,&变量名2,&变量名3……);  //可以同时录入多个变量,录入时空格隔开,回车表示录入结束

        - 解决scanf直接使用时出现的安全问题:
          1. 法一  代码顶部加上该注释:`#define _CRT_SECURE_NO_WARNINGS`
          2. 法二  点击项目名 - >属性 -> 配置属性 -> C/C++ -> 预处理器 -> 在预处理器窗口右边,点击预处理器定义,将 `_CRT_SECURE_NO_WARNINGS`加到最后一行(注意上边的配置不要删了)



## 字符串变量的定义方式
        - 在C语言中,没有单独的字符串变量,但可以利用字符数组来存字符串
        - 占位符:`%s`
        - 定义: 数据类型 变量名[内存占用大小] = "字符串";
            eg: `char str[] = "aaa";`

        - 内存占用大小的计算方式:             
             1. 英文:1个字母/符号/数字,占用1个字符
             2. 中文:在vs/vc中,默认情况下,一个中文占用两个字节
             3. 字符串末尾隐藏的结束标志:占1个字符

             char str[6] = "aaa哈";
             printf("%s\n",str);
             printf("%zu\n",sizeof(str));



## 流程控制语句
        1. 顺序结构:程序默认执行流程,从上到下依次运行
        2. 分支结构
          * 2.1 if语句
           - 格式1:
            if(关系表达式){
                语句体;
            }

           - 格式2:
           if(关系表达式){
                语句体A;
            }else{
                语句体B;
            }

           - 格式3:
           if(关系表达式1){
                语句体A;
            }else if(关系表达式2){
                语句体B;
            }else if(关系表达式3){
                语句体C;
            }
               …
            else{
                语句体N;
            }

           * 2.2 switch语句
            switch(表达式){
               case 值1:
               语句体1;
               break;
              
               case 值2:
               语句体2;
               break;
               …
               default:
               语句体n;
               break;
            }
          - 注意表达式的计算结果只能是字符/整数
          - case 后面的值也只能是字符/整数,不能是变量
          - case 后面的值不能重复
          - break:表示中断/结束的意思,结束switch语句
          - case穿透的情况,即少写了break;
          - case穿透的规则:
             1. 根据表达式里的结果去匹配对应的case值
             2. 执行对应case里面的值
             3. 如果在执行过程中,遇到了break,那么直接结束switch,
              - 如果没有,就会继续执行下面的代码,直到遇到了break,或者把整个switch中的代码全部执行完了,才结束。
            

        3. 循环结构
         * for循环
               

               for(初始化语句;条件判断语句;条件控制语句){
                  循环体语句;
               }

               ---无限循环(死循环)----------------------------------
               
               for( ; ; ){
                   循环体语句;
               }


           - 执行流程:
           1. 初始化语句
           2. 执行条件判断语句,看起结果是否成立:成立就执行循环体语句,不成立结束循环体
           3. 执行条件控制语句
           4. 回到2继续执行条件判断语句
            
         * while循环
               

                初始化语句
                while(){
                   循环体语句
                   条件控制语句
               }

               ---无限循环(死循环)-----------------------------------

               while(1){
                   循环体语句;
               }


            - 执行流程和for循环一样,就是初始化变量一个是在大括号内一个是大括号外,在括号内的则无法在大括号外继续使用。
            
         * do-while循环
              

            do {
                 循环体语句;
                 条件控制语句;
               }while(条件判断语句);

               ---无限循环(死循环)----------------------------------
               
               do{
                   循环体语句;
               }while(1);

            - 执行流程:从上到小



## 跳转控制语句
        - break :不能单独书写,只能写在switch/循环中,表示结束,跳出的意思。break只能跳出单层循环,对于多层循环,只能跳出内部循环。
        - continue :结束本次循环,继续下次循环。
        - goto xx;

         for(){
           for(){
             printf("跳出整个循环\n");
             goto a;
           }
         }
         // 标号
         a: printf("外部循环结束\n");



## 制表符 \t
        - \t制表符,长度可变的大空格
        - 它会根据前面字母的个数在后面补空格,让整体的长度达到8或8的倍数,最多补8个
        



 

相关文章:

  • Redis 实战篇 ——《黑马点评》(下)
  • 【硬核拆解】DeepSeek开源周五连击:中国AI底层技术的“破壁之战”
  • Transformer 代码剖析7 - 词元嵌入(TokenEmbedding) (pytorch实现)
  • 【wordpress】服务器已有LNMP环境(已运行WordPress),如何配置文档访问功能?
  • 【笔记】用大预言模型构建专家系统
  • DeepSeek模型本地部署与应用构建
  • C++ Primer Plus第九章课后习题总结
  • 全星研发项目管理APQP软件系统:铸造芯片集成电路产业研发体系化建设平台
  • C++中的“结界”机制:作用域与变量可见性探秘
  • 【前端面试】如何不通过正则:验证IP地址合法性
  • PartitionFinder2 安装与使用-bioinfomatics tools 051
  • 从源到目标:深度学习中的迁移学习与领域自适应实践
  • 谈谈单例模式中通过Htools包的SpringUtil.getBean获取Bean的好处
  • 探索DEHP与睾酮素的隐秘关联
  • 【免费压测靶场开放】性能测试练习靶场,GET/POST双模式支持
  • SpringMVC学习(初识与复习Web程序的工作流程)(1)
  • 系统架构设计师—计算机基础篇—存储管理
  • Vim 常用快捷键大全:跳转、编辑、查找替换全解析
  • 【前端知识】Vue2.x与3.x之间的区别以及升级过程需要关注的地方
  • ​Java 加密技术全面解析:SM2、SM4、MD5 及常用加密方法​
  • 广州建设网站开发/网络营销策略包括
  • 怎么做类似豆瓣的网站/优化seo网站
  • django做网站/湖南网站建设seo
  • 原生小程序是什么/seo查询seo
  • 企业官网设计/谷歌seo搜索引擎下载
  • 静态网站怎么更新/市场营销比较好写的论文题目