c语言关键字之auto

1.c语言中,关键字auto用于声明一个变量为自动变量

  自动变量也称局部变量。将不在任何类、结构、枚举、联合和函数中定义的变量视为全局变量,而在函数中定义的变量视为局部变量。所有局部变量默认都是auto,一般省略不写。
  auto声明全局变量时,编译出错:

auto int i;
void main(void)
{
}

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

void fun(auto int i)
{
	auto int j = i;
}
void main(void)
{
	auto int i = 1;
	fun(i);
}

2.c语言中,只使用auto修饰变量,变量的类型默认为整型

void main(void)
{
	double a = 1.2, b = 2.7;
	auto c = a + b;//c语言中,c = 3
}

3.c++中,关键字auto是一个类型说明符

  通过变量的初始值或者表达式中参与运算的数据类型来推断变量的类型。编程时通常需要把表达式的值赋给变量,这就要求在声明变量时清楚地知道表达式的类型,c++11新标准引入了auto 类型说明符,让编译器去分析表达式的类型。由于需要编译器推断变量或表达式的类型,所以auto定义的变量必须初始化。而c语言中,使用auto定义的变量可以不予初始化,因为此时变量默认为整型。该部分参照博客:浅析C语言auto关键字和C++ 中的auto关键字

void main(void)
{
	double a = 1.2, b = 2.7;
	auto c = a + b; // c++中, c = 3.9
}

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

  c++源码:

//编写一个程序,读入一个包含标点符号和空格的字符串,将标点符号和空格去除后输出字符串剩余的部分
#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;
}

  示例:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值