C语言关键字 (二)

10. goto 关键字

一般来说,编码的水平与 goto 语句使用的次数成反比。

个人主张,禁用 goto 语句。

11. void 关键字

1、void 修饰函数返回值和参数

1> 如果函数没有返回值,那么应将其声明为void 类型。

2> 如果函数无参数,那么应声明其参数为void

2、void 指针

1> 不能对void 指针进行算法操作

2> 如果函数的参数可以使任意类型指针,那么应声明其参数为 void*

3、void不能代表一个真实的变量

12. return 关键字

return 用来终止一个函数 并 返回其后面跟着的值。

return (Val); // 此括号可以省略,但一般不省略,尤其在返回一个表达式的值时;

注: 1> 一个函数内可以有多个 return 语句,但只有一个 return 语句被执行

2> return  语句不可返回指向 "栈内存" 的 "指针", 因为该内存在函数结束时被自动销毁。

13. const 关键字

1、const 修饰的只读变量

定义 const 只读变量,具有不可变性。

注: const 修饰的只读变量必须在定义的同时初始化。

2、节省空间,避免不必要的内存分配,同时提高效率

编译器通常不为普通 const 只读变量分配内存空间,而是将他们保存在符号表中,这使得他成为一个编译器期间的值,没有了存储与读内存的操作,使得它的效率也很高。

3、修饰一般变量

int const i = 2; 或 const int i = 2;

4、修饰数组

只读数组: int const a[5] = {1,2,3,4,5};

const int a[5] = {1,2,3,4,5};

5、修饰指针

const int *p;
// p可变, p指向的对象不可变

int const *p;
// p可变, p指向的对象不可变

int *const *p;// p不可变, p指向的对象可变

const int *const *p;// 指针p和p指向的对象都不可变

6、修饰函数的参数

当不希望参数值在函数体内被意外改变时使用。

例: void Fun(const int i);

7、修饰函数的返回值

1> const 修饰符也可以修饰函数的返回值,返回值不可被改变。

例: const int Fun(void);

2> 在另一连接文件中引用 const 只读变量

extern const int i;// 正确的声明

extern const int j = 10;// 错误,只读变量的值不能改变

14. volatile 关键字

volatile 是易变的、不稳定的意思。

volatile 关键字 和 const 一样是一种类型修饰符,用它修饰的变量表示可以被某些编译器未知的因素改变,比如操作系统、

15. extern 关键字

当引用另一个文件中定义的变量或函数时,使用 extern 进行声明

16. struct 关键字

struct 是一个神奇的关键字,它将一些相关联的数据打包成一个整体,方便使用。

1、结构体的大小

2、柔性数组

17. union 关键字

union 关键字的用法与 struct 的用法非常类似。

union 维护足够的空间来放置多个数据成员中的 "一种",而不是为每个数据成员配置空间。在union中所有的数据成员公用一个空间,同一时间只能存储其中一个数据成员,所有的数据成员具有相同的起始地址。

18. enum 关键字

枚举 与 #define 宏的区别

1> #define 宏常量是在预编译阶段进行简单替换; 枚举常量则是在编译的时候确定其值

2> 一般在编译器里,可以调试枚举常量,但不能调试宏常量。

3> 枚举可以一次定义大量相关的常量,而#define 宏 一次只能定义一个。

19. typedef 关键字

注意typedef 与 #define 的区别

#define INT32 int

unsigned INT32 i = 10;// 正确

typedef int int32;

unsigned int32 j = 10;// 编译错误

时间: 2024-08-09 10:44:40

C语言关键字 (二)的相关文章

C语言关键字、标示符与注释

一. 关键字 : 关键字就是已被C语言本身使用,不能作其它用途使用的字. 例如关键字不能用作变量名.函数名等 C语言关键字一共32个关键字,比如常用的int  struct  break enum等等 关键字主要分成两类:一类是数据类型关键字 ,另一类是流程控制语句关键字 例如: 二, 标示符 标识符使用来标识源程序中的某个对象的名字的,这些对象可以是语句.数据类型.函数. 变量.常量.数组等. 标示符的命名规则 (必须遵守的法则): 只能有字母.数字.下划线构成或者是$符号,并且只能以字母或者

嵌入式linux C++语言(二)——C++对C语言基础语法的扩展

嵌入式linux C++语言(二)--C++对C语言基础语法的扩展 C++是基于C语言扩展发展而来的面向对象的程序设计语言,本文将主要讨论C++语言基于C语言扩展的方面. 一.类型增强 1.类型检查更严格 在C语言中: const int a = 100; int *p = &a; 在C++语言中: const int a = 100;//必须在定义的时候初始化 const int *p = &a; 在C++语言中不能隐式转换数据类型. error: invalid conversion

嵌入式linux面试题解析(二)——C语言部分二

嵌入式linux面试题解析(二)--C语言部分二 1..h头文件中的ifndef/define/endif 的作用?    答:防止该头文件被重复引用. 2.#include 与 #include "file.h"的区别?    答:前者是从Standard Library的路径寻找和引用file.h,而后者是从当前工作路径搜寻并引用file.h. 3.描述实时系统的基本特性    答 :在特定时间内完成特定的任务,实时性与可靠性. 4.全局变量和局部变量在内存中是否有区别?如果有,是

1.C语言关键字(auto break case char const swtich)

ANSI C标准C语言共有32个关键字,分别为: auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while 1)auto:一个自动存储变量的关键字,也就是声明一块

C语言关键字

常用c语言关键字 C 语言标准定义的32 个关键字:auto 声明自动变量,缺省时编译器一般默认为autoint 声明整型变量double 声明双精度变量long 声明长整型变量char 声明字符型变量float 声明浮点型变量short 声明短整型变量signed 声明有符号类型变量unsigned 声明无符号类型变量struct 声明结构体变量union 声明联合数据类型enum 声明枚举类型static 声明静态变量switch 用于开关语句case 开关语句分支default 开关语句中

李洪强iOS开发之OC[016]C语言关键字

// //  main.m //  04 - C语言关键字 // //  Created by vic fan on 16/7/12. //  Copyright © 2016年 李洪强. All rights reserved. // C语言关键字 A -  数据相关 1) 基本数据类型(5个) void    空   没有的意思 char    字符 占 1个字节(char的本质也是数字) int     整数  4个字节 float   浮点数  (小数点)保留7位有效数字 double 

JAVA学习第九课(关键字二static)

关键字二. static(静态) 特点: static 用于修饰成员(成员函数和成员函数) static的存在,优先于对象存在,随着类的加载而加载 static所修饰的成员,被所有对象共享 static可以直接被类名调用,格式:System.out.println(Person.country);:类名.静态成员 使用细节 静态方法只能访问静态成员,即static修饰的成员,static int data; 静态方法不可以写this.super:this代表着当前调用该方法的对象. 主函数(ma

R语言基础(二) 可视化基础

> which.max(apply(x[c("x1","x2","x3")], 1, sum))49 > x$num[which.max(apply(x[c("x1","x2","x3")], 1, sum))][1] 2005138149 > hist(x$x1) > plot(x$x1,x$x2) > table(x$x1) 80 81 82 83 84

Swift语言指南(二)--语言基础之注释和分号

注释 通过注释向自己的代码中注入不可执行的文本,作为你自己的笔记或提示.Swift编译器运行时会忽略注释. Swift的注释与C语言极其相似,单行注释以两个反斜线开头: //这是一行注释 多行注释以/*开始,以*/结束: ? 1 2 3 <span style="color: rgb(0, 128, 0);">/* 这也是一条注释, 但跨越多行 */ </span> 与 C 语言的多行注释有所不同的是,Swift 的多行注释可以嵌套在其他多行注释内部.写法是在一