贴出你的代码。我这样用是没问题的:
#include <iostream>using namespace std
int main() {
auto int i = 12345
cout << i << endl
return 1
}
在c++11时代,auto用于变量的自动类型推断:在声明变量的时候根据变量初始值的类型自动为此变量选择匹配的类型,而不需要我们显示指定类型。
auto有以下特点:
1. auto自动类型推断发生在编译期,所以不会影响程序执行期间的性能
2.auto定义的变量必须立即初始化,这样编译器才能推断它的实际类型,那么编译的时候才能确定auto的类型和整个变量的类型,然后在编译期间就可以用真正的类型替换掉auto这个类型占位符
3.auto的使用灵活,和指针,和引用,和const等限定符结合使用。
注意,auto类型推断,和函数模板推断非常类似。
auto类型推断为传值方式(非指针,非引用),即auto后面直接接变量名
注意,在传值方式下,引用类型会被抛弃,const属性也会被抛弃。
注意,在指针或者引用类型(auto*,auto&)但不是万能引用下,不会抛弃const等限定符,但是会丢弃引用。
当变量类型为万能引用时(auto&&),和模板参数T类型规则相同
注意,auto it={1,3,5}这是一个针对auto的特殊推导,能推导出std::initializer_list类型。这种推导只适合auto,不适合模板类型。这一点是auto类型推导和模板类型推导的区别之处。其他方面,auto和模板类型推导差不多
(1)auto不能用于函数参数,比如void func(auto arg1,int y)是不被允许的
(2)普通成员变量类型不能是auto类型,static const静态成员可以使用auto,使用auto后,其值必须在类内初始化,注意static const和普通静态成员不一样,普通静态成员在头文件声明,然后在.cpp中定义和初始化,static const静态成员就在类里定义和初始化了
基本输入输出C语言本身并没有输入输出功能的语句,数据的输入输出都是通过函数调用来实现的。
C语言提供了标准函数库,其中就包括了基本输入输出函数,C语言把这一类的函数的定义放在了头文件stdio.h中,
关于怎么快速学C/C++,有什么方法,这个问题,想必大家都已经心中有数了,打算深入了解这个行业的朋友,可以加下小编的C/C++学习群:666+295+498,邀请码(阿岐编程)不管你是小白还是大牛,小编我都欢迎,不定期分享干货,包括小编自己整理的一份2018最新的C/C++资料和0基础入门教程,欢迎初学和进阶中的小伙伴。
每天晚上20:00我都会开直播给大家mianfei分享C/C++学习知识和路线方法,群里会不定期更新最新的教程和学习方法(进群送2018C/C++学习教程),大家都是学习C/C++的,或是转行,或是大学生,还有工作中想提升自己能力的C/C++党,如果你是正在学习C/C++的小伙伴可以加入学习。最后祝所有程序员都能够走上人生巅峰,让代码将梦想照进现实,非常适合新手学习,有不懂的问题可以随时问我,工作不忙的时候希望可以给大家解惑。
要使用这些函数时只需要添加一个编译预处理命令#include即可,关于头文件的作用后面还会详细介绍
字符输出函数putchar()
一般格式:
putchar(表达式)
功能:函数功能是在屏幕上输出一个字符;表达式可以是字符或整型表达式,表达式为将要输出的字符本身或ASC||码,
因为ASC||码只有0~255,所以当表达式大于255时,系统会自动取256的余数,当然如果表达式不是整型值时系统会自动舍弃小数部分,
有趣的是,有些ASC||码是无法显示的,比如7表示为计算机扬声器响一声
字符输入函数getchar()
一般格式:
getchar()
功能:从标准输入设备(键盘)上输入一个字符(需要回车),当用户输入一串字符时(需要回车)只返回所输入的第一个字符,如果直接回车则getchar()的值是回车,函数getchar()的值是其获得的字符;下面的语句都是正确的
c=getchar();
c=getchar()+1;
putchar(getchar());
单独使用getchar()而不做其他处理,有使程序暂停的作用,待用户按下回车时继续,
字符输入函数getche()和getch()
一般格式:
getche()
getch()
这两个函数与getchar()大致相同,但有两点不同,一是,不需要回车,所以不会发生输入多个字符的情况,
二是,getche()输入时会回显屏幕但getch()不会
标准格式输出函数printf()
一般格式:
printf(格式控制字符串,输出值参数列表);
关于格式控制详细内容请百度
格式输出函数scanf()
一般格式:
scanf(格式控制字符串,变量地址列表)
变量
在c语言中,每一个变量和函数都有两个属性:数据类型(如整型、字符型)和数据的存储类别(静态存储和动态存储)
从变量的作用域(即从空间)角度来分,可以分为全局变量和局部变量
从变量值存在时间(即生存期)角度来分,可以分为静态存储方式和动态存储方式
静态存储方式是指在程序运行期间由系统分配固定的存储空间的方式,而动态存储方式是指在程序运行期间根据需要进行动态的分配存储空间的方式
关于存储类别具体包含4种,自动的(auto)、静态的(static)、寄存器的(register)、外部的(extern)
auto变量
函数局部变量如果不专门声明为static存储类别,都是动态随机分配存储空间的,数据存储在动态存储区中。
函数中的形参和在函数中定义的变量(包括复合语句定义的变量),都属此类,
在函数调用时系统会给这些变量随机分配内存,一旦调用结束就会自动释放这些存储空间,因此这类局部变量称为自动变量
关键字“auto”可以省略,不写则隐含确定为“自动存储类别”,它属于动态存储方式
static声明局部变量
有时希望函数的局部变量的值在函数调用结束后不消失而保留原值,
即其占用的存储单元不释放,在下一次调用时,该变量已有值,就是上一次调用结束时的值。
这时就应该指定该局部变量为“静态局部变量”,用关键字static进行声明。
静态局部变量属于静态存储类别,在静态存储区内分配存储单元,在程序整个运行期间都不释放
标识符分关键字,预定义标识符和用户标识符。
1)标识符命名原则
a,只能有字母,数字,下划线和美元($)组成。
b,不能以数字开头。
c,不能与关键字重名。
d,严格区分大小写。
2)标识符命名规范
a,驼峰命名法。(第一个单词首字母小写,其他单词首字母大写)。getName。
b,名称简练,望文知意
c,避免出现数字编号。name1,name2.
d,多个文件共同使用的全局变量或者函数名称加范围限定符。UI_name
3) 关键字就是C本身使用的,不能作他用的字。总共有32个。
数据类型关键字:void int char float double (5)
类型修饰符关键字:short long signed unsigned(4)
复杂类型关键字:struct enum union(3)
流程控制关键字:for break continue do while if else goto suitch case default return(12)
存储类型关键字:auto extern static regist ( 4)
其他关键字:const sizeof typedel volatile(4)
5 注释
对代码的解释性文字。
作用:方便程序员之间交流。
特点:不参与编译。
注释分类
1)单行分类(//注释内容)。只注释单行
2)多行分类(/* 注释内容*/)。注释多行,注释文字间可以换行。快捷键(command + ?)
6 数据类型
常用基本数据类型占用空间(64位机器为例)
char : 1个字节
int :4个字节
float:4个字节
double:8个字节
基本类型书写
整数
a,默认为10进制 ,10 ,20 .
b,以0开头为8进制,045,021.
c.,以0b开头为2进制,0b11101101。
d,以0x开头为16进制,0x21458adf。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)