首页 > 其他分享 >C语言学习随笔-07 auto关键字

C语言学习随笔-07 auto关键字

时间:2024-01-15 16:47:21浏览次数:31  
标签:07 int auto void C语言 main 变量

1、在C中auto是一个存储类的关键字。

      - auto存储类:auto存储类是所有局部变量默认的存储类。

      - auto可以在声明变量的时候根据变量的初始值的类型自动为此变量选择匹配的类型。

2、注意事项

      - auto声明的变量必须要初始化,否则编译器不能判断变量的类型。

      - auto不能被声明为返回值,auto不能做为形参,auto不能被修饰为模板参数。

3、使用方法

     ①、在C语言中,关键字auto用于声明一个变量为自动变量,自动变量也称为局部变量,所有局部变量默认都是auto,一般省略不写

      ▷ auto声明全局变量时,编译出错,如下:

      例: auto int i;  //全局变量

              void main (void)

              {

              }

       ▷ auto声明局部变量时,编译正常,如下:

       例:void fun(auto int i)

             {

                 auto int j = i;

             }

             void main(voif)

            {

                auto int i = 1;

                fun(i);

            }

      ②、C语言中,只使用auto修饰变量,变量的类型默认为整型

       void main(void)

       {

           double a = 1.2,b = 2.7;

           auto c = a + b;//在C语言中,c=3

       }

      ③、C++中,关键字auto是一个类型说明符

       通过变量的初始值或表达式中的参与运算的的数据类型来推断变量的类型

       void main(void)

       {

          double a = 1.2,b = 2.7;

          auto c = a + b;//c++中,此= 3.9

      }

     例:编写一个程序,读入一个包含标点符号和空格的字符串,将标点符号和空格去除后输出字符串剩余的部分

            #include <iostream>
            #include <string>
            using namespace std;


            int main(void)
            {
                  //src为源字符串,即要操作的字符串,dest为目标字符串,存放操作结果
                    string src, dest;
                    getline(cin,src);//从输入中读取一行赋值给str
                    for (auto c : src)//对str中的每个字符进行循环
                    {
                        if (!ispunct(c) && c != ' ')//判断字符是否为标点符号和空格
                       {
                            dest.push_back(c);//把该字符尾插入到dest中
                       }
                   }
                   cout << dest << endl;//输出dest中的内容

                   system("pause");
                   return 0;
             }

4、auto的用法

     -  用于代替冗长复杂、变量使用范围专一的变量声明;

     -  在定义模板函数时,用于声明依赖模板参数的变量类型;

     -  模板函数依赖于模板参数的返回值。

 

标签:07,int,auto,void,C语言,main,变量
From: https://www.cnblogs.com/Jx153875/p/17965681

相关文章

  • C语言---Day6
    15、enum枚举---枚举是C语言中的一种基本数据类型,用于定义一组具有离散值的常量,它可以让数据更简洁,更易读;通常用于为程序中的一组相关的常量取名字,以便于程序的可读性和维护性---声明枚举类型enumDay{MON=1,TUE,WED,THU,FRI,SAT,SUN};---枚举变量的定义:先......
  • Arduino部分C语言含义之--“::”
    "::“在C++中表示作用域,和所属关系。”::"是运算符中等级最高的。有三种作用。1.作用域符号例如:A,B表示两个类,在A,B中都有成员member。那么:A::member就表示类A中的成员member。B::member就表示类B中的成员member。2.全局作用域符号charzhou;//全局变量voids......
  • 【数据结构】C语言实现顺序栈
    顺序栈的C语言实现导言大家好,很高兴又和大家见面啦!!!在上一个篇章中,我们介绍了栈的基本概念,以及栈中的重要术语。通过介绍我们知道了栈的本质也是一种线性表,只不过它是一种操作受限的线性表。因此栈的实现方式与线性表的实现实际上是大同小异的。下面我们就来介绍一下如何通过C语言......
  • 寒假生活指导07
     今天学习了爬虫#导入所需库importurllib.requestfromlxmlimportetree#设置目标URL和请求头信息,模拟Chrome浏览器访问url='https://www.baidu.com/'headers={'User-Agent':'Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,like......
  • Nuxt3教程:添加Autoanimate 动画库
    前言AutoAnimate是一个零配置,插入式动画实用程序,可以为您的Web应用程序添加平滑过渡。您可以将其与React,Solid,Vue,Svelte或任何其他JavaScript应用程序一起使用。正文安装依赖#yarnyarnadd@formkit/auto-animate#npmnpminstall@formkit/auto-animate#pnpmpnpmadd......
  • 吴师兄学算法day07 11. 盛最多水的容器
    题目:11. 盛最多水的容器难点:如何确定,每次只移动最短边,因为无论移动哪边的柱子,下面的底部一定是缩短的,剩下的就是取决于高度。如果移动的是,两侧高的那个,整体的面积一定是缩小的。如果移动的是,两侧底的那个,后面的柱子有可能是遇到高的,也有可能是低的,所以,整体面积可能大,也可......
  • 软件测试/测试开发/全日制|Pytest如何使用autouse实现自动传参
    Pytestfixture之autouse使用写自动化用例会写一些前置的fixture操作,用例需要用到就直接传该函数的参数名称就行了。当用例很多的时候,每次都传这个参数,会比较麻烦。fixture里面有个参数autouse,默认是Fasle没开启的,可以设置为True开启自动使用fixture功能,这样用例就不用每次都去传参......
  • 吴师兄学算法day07 167. 两数之和 II - 输入有序数组
    题目:167. 两数之和II-输入有序数组易错点:下标为1开始我的代码:classSolution:deftwoSum(self,numbers:List[int],target:int)->List[int]:right=len(numbers)-1left=0whileleft<right:ans=numbers[left]......
  • 吴师兄学算法day07 双指针 125. 验证回文串
    题目:125. 验证回文串易错点:isaplha()isdigit()lower()要熟悉,挺有用的。我的代码:classSolution:defisPalindrome(self,s:str)->bool:ans=''foriins:ifi.isalpha()ori.isdigit():ans+=i.lower()#......
  • C语言文件操作
    写文件-输出相应字符/字符串到相应的文本文件#define_CRT_SECURE_NO_WARNINGS1#include<stdio.h>#include<errno.h>#include<string.h>intmain()//输入字符到TEST.txt中{ FILE*pfwrite=fopen("TEST.txt","w"); if(pfwrite==NULL)//打开失败情况 { prin......