对 “auto”不能与任何其他类型说明符组合 的探讨(附其余存储类别的使用格式)

“auto”不能与任何其他类型说明符组 的探讨(附其余存储类别的使用格式)

对谭浩强编著《C++程序设计(第3版)》第110至111页,4.12.2与4.12.3的自动变量auto在vs2010环境下如何书写探讨。
(末尾附:对其余存储类别的使用格式的探讨)
环境:vs2010
例题:4.12
页码:P111
例题代码如下:

#include <iostream>
using namespace std;
int f(int a)
{
	auto int b=0;
	static int c=3;
	b=b+1;
	c=c+1;
	return a+b+c;
}
int main ()
{
	int a=2,i;
	for (i=0;i<3;i++)
		cout <<f(a)<<"  ";
	cout <<endl;
	return 0;
}

系统会报错:
error C3530: “auto”不能与任何其他类型说明符组合
1>
1>生成失败。
1>

笔者查阅相关资料并且试验后,关于vs2010环境下auto的使用得出一下三条结论:

  1. auto 直接加 变量名 并且赋值;
    如:
auto x=3auto y='a';
  1. 数据类型名 auto 变量名;
    如:
int auto x=3
  1. 形如
auto int x=3auto char y='a';

不可以,系统会报错。

参考:参考来源

问题:"auto”不能与任何其他类型说明符组合小结

总结:

1.新版C++定义auto不能和***任何类型***进行组合;

2.auto x = 14;表示把x自动转换成整型,归结为 auto 变量名 = 值(可以是基本数据类型):auto根据后面的值自动把该变量转换成相应的类型。

3.大多数以普通声明方式声明的变量都是auto变量,他们不需要明确指定auto关键字,默认就是auto;

4.auto变量在离开作用域是会被程序自动释放,不会发生内存溢出。

注意
其他的存储类别,如:static,register,extern,都符合
“存储类别 数据类型名 变量名 (赋值)”
这一基本格式;
如:

static int a;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值