C语言中auto关键字的使用方法有哪些?

2026-04-12 02:491阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计461个文字,预计阅读时间需要2分钟。

C语言中auto关键字的使用方法有哪些?

@[TOC]

1.`auto` 关键字作用

`auto` 关键字能自动识别变量类型。

2.`auto` 原理

`auto` 定义的变量在编译阶段根据右值推导出类型。

@[TOC]

1.auto作用

auto关键字能够自动识别变量类型。

2. auto的原理

auto定义的变量会在编译阶段根据右值来推出auto变量的类型。

1.使用auto定义变量时必须对其进行初始化,在编译阶段编译器需要根据初始化表达式来推导auto的实际类型。

2.因此auto并非是一种“类型”的声明,而是一个类型声明时的“占位符”,编译器在编译期会将auto替换为变量实际的类型。

3.使用auto的细则

3.1. auto与指针和引用结合起来使用

int main() { int a = 10; auto b = a; auto pa = &a; auto* pb = &a; auto& c = a; return 0; }

b是auto类型,会根据a的类型推导b的类型。 pa是指针,因为auto修饰的pa会根据右值(&a)来推导出pa的类型。 auto pa = &a和 auto *pa = &a是一样的写法。只不过是: auto *pa = &a规定pa必须是指针类型,不能是其他类型了。

C语言中auto关键字的使用方法有哪些?

auto *pa = 10;

这样的代码是错误的,auto* 规定了变量必须是指针类型。给一个10,10是一个字面量,默认是int类型。不符合规则。

3.2 在同一行定义多个变量

一行可以定义多个相同变量。

auto a = 1, b = 3;

注意:一行的变量必须相同。

auto c = 2, d = 3.14;

这样的代码就是错误的。

因为编译器实际只对第一个类型进行推导,然后用推导出来的类型定义其他变量。

3.3. auto不能作为函数的参数

因为编译器不能对形参的实际类型进行推导。

3.4auto不能作为数组的声明。

void TestAuto() { int a[] = {1,2,3}; auto b[] = {4,5,6};//错误 }

编译器不知道要开多大的空间。

本文共计461个文字,预计阅读时间需要2分钟。

C语言中auto关键字的使用方法有哪些?

@[TOC]

1.`auto` 关键字作用

`auto` 关键字能自动识别变量类型。

2.`auto` 原理

`auto` 定义的变量在编译阶段根据右值推导出类型。

@[TOC]

1.auto作用

auto关键字能够自动识别变量类型。

2. auto的原理

auto定义的变量会在编译阶段根据右值来推出auto变量的类型。

1.使用auto定义变量时必须对其进行初始化,在编译阶段编译器需要根据初始化表达式来推导auto的实际类型。

2.因此auto并非是一种“类型”的声明,而是一个类型声明时的“占位符”,编译器在编译期会将auto替换为变量实际的类型。

3.使用auto的细则

3.1. auto与指针和引用结合起来使用

int main() { int a = 10; auto b = a; auto pa = &a; auto* pb = &a; auto& c = a; return 0; }

b是auto类型,会根据a的类型推导b的类型。 pa是指针,因为auto修饰的pa会根据右值(&a)来推导出pa的类型。 auto pa = &a和 auto *pa = &a是一样的写法。只不过是: auto *pa = &a规定pa必须是指针类型,不能是其他类型了。

C语言中auto关键字的使用方法有哪些?

auto *pa = 10;

这样的代码是错误的,auto* 规定了变量必须是指针类型。给一个10,10是一个字面量,默认是int类型。不符合规则。

3.2 在同一行定义多个变量

一行可以定义多个相同变量。

auto a = 1, b = 3;

注意:一行的变量必须相同。

auto c = 2, d = 3.14;

这样的代码就是错误的。

因为编译器实际只对第一个类型进行推导,然后用推导出来的类型定义其他变量。

3.3. auto不能作为函数的参数

因为编译器不能对形参的实际类型进行推导。

3.4auto不能作为数组的声明。

void TestAuto() { int a[] = {1,2,3}; auto b[] = {4,5,6};//错误 }

编译器不知道要开多大的空间。