C/C++举例讲解关键字的用法

目录
  • static
    • static修饰全局变量
    • static修饰局部变量
    • static修饰函数
  • const
  • BOOL
  • break
  • continue

static

static修饰全局变量

static修饰的全局变量只能在当前声明文件内使用,不能够在其他文件中使用。

举例:

static int a=0;    //static修饰后变量a仅在本文件中可见,其他文件里不可见变量a(隐藏了),别的文件不可以调用
       int b=0;    //其他文件可以通过extern int b来使用本文件中的全局变量b

目标:此文件调用上一个文件中的全局部变量b

#include<stdio.h>
extern int b;      //先用extern把b调过来
	int main()
{
      int i=b;     //把b赋值给i
      return 0;
}

static修饰局部变量

include<stdio.h>
int main()
{
	int i=0;
	for(i=0,i<10;i++)
	{
		ptintf("counter=%d\n",fun());  //在main函数里调用fun函数,来修改counter的值并获取,前提counter必须被static修饰,若不修饰,counter会随着fun函数退出而销毁,其他外部函数不能获取counter的值
	}
	return 0;
}
int fun()                 //声明一个函数fun,实现计数功能
{
	static int counter;   //函数内部声明static局部变量counter,可以保证counter只能在fun函数内部被修改,其他地方不能修改counter的值;生命周期为整个源程序,作用域不改变只能在此函数内使用
	counter++;           //调用此fun函数时,counter就加1
	return counter;      //返回counter的值
}

static修饰函数

static对函数修饰与对全局变量的修饰相似,只能被本文件中的函数调用,不能被同一程序其他文件中的函数调用。

举例:

static int getdata1()  //static修饰getdata1,此函数不能被其他文件调用
{
	return 1;
}
     int getdata2()   //未加static修饰,其他文件可以调用getdata2()
{
	return 2;
     }

另一个文件:想调用getdata2()

extern int getdata2();  //把上一个文件中getdata2()函数调过来
	int main()
{
	int ret=getdata2(); //定义ret并初始化把getdata2的返回值赋给ret
	return 0;
}

注:

(1)一个源程序通常由若干个c文件组成,c文件之间相互调用函数与变量时,需要通过extern进行外部声明。

(2)extern的作用是用于声明外部变量、外部函数;static用来防止c文件内的函数、变量被外部调用,隐藏作用。

(3)声明对象:基本变量、函数、结构体、枚举等。

(4)static局部变量存在内存的静态区,即使当前函数运行结束,静态变量的值不会被销毁,还继续存在,函数下次运行时仍可以用到这个值。

const

1. const声明的变量的值不能再被修改,与#define相比,const限定符优点:

(1)宏定义仅是对字符常量简单替换,不能检查类型;

(2)const可以保护被修饰的变量,防止意外修改;

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

2.以下三个变量声明的含义:

(1)int const*p;中const 修饰的是指针p, 表示指针p的值不能改变,而p(即地址)是可以改变的。

(2)int * const p;中const修饰的 p(即地址)是常量,不可改变,但是指针p的值可以改变。

(3)int const *p const;中是(1)和(2)兼得,表示 只读, 其地址以及地址中对应的值都不可改变。

而const int *p与int const *p用法一样,修饰的都是指针p的值不能改变。

BOOL

关键字bool是声明 布尔逻辑变量的,变量要么是真,要么是假,用1表示true、0表示false;_Bool类型实际上是一种整数类型,仅占用1位存储空间, 程序通过布尔值可选择执行哪部分代码。

bool done = false;
    while(!done)
    {
    ......
    }

break

关键字break是用来跳出一个do,for,while的循环,它也可以结束一个switch语句的 子句,让程序忽略下面的case代码;case关键字与switch搭配用来检测匹配。

continue

在一个循环语句中, continue语句用来结束这次循环,后面的循环继续,下面代码显示 除了10之外0-20的所有数字。

for(int i = 0;i < 21;i++)
{
	if(i == 10)   //判断i为10时,走这个if语句;i不为10时,就不走if语句,直接走cout语句
	{
	continue;     //判断i等于10了,那就结束这次循环,不计入(不cout)i为10这个数据
	}
	cout <<i<<""; //cout用于在计算机屏幕上显示信息,即打印、输出
}

到此这篇关于C/C++举例讲解关键字的用法的文章就介绍到这了,更多相关C语言关键字内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • C语言实例梳理讲解常用关键字的用法

    目录 一.C语言关键字详解 1. sizeof 2. const 3. static 4. extern 5. volatile 6. typedef 7. enum 8. continue 9. break 一.C语言关键字详解 1. sizeof sizeof相信大家并不陌生,其作用就是计算变量所占用的内存空间大小.sizeof的用法看着和函数很相似,但sizeof的真实身份确是:sizeof既是关键字,也是运算符,但不是函数! 这点需要大家牢记.还有非常重要的一点就是 sizeof中的表示

  • 详解C语言中的Static关键字

    一.static关键字的基本含义 首先,static关键字的意思是静态的,用于修饰局部变量,全局变量和函数,修改其数据储存类型 1.局部变量:在任意一个函数内部定义的变量(不加static),初始值不确定,出函数自动销毁,存放于栈区. 使用static修饰这个变量时,编译器会把她初始化为零,存储于静态区,函数返回时值保持不变,出函数不销毁,下一次进入函数依然存在.根本原因——static修饰的局部变量存储在静态区. 2.全局变量 :普通全局变量定义在函数体外部,在静态区分配存储空间,编译器自动对

  • C语言Static 关键字解析

    目录 01简述 02static关键字作用 01简述 static关键字在嵌入式C语言当中很简单,它有三个作用: 作用一:在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变. void test1(void) {     unsigned char a:     static unsigned char b:     -     a++:     b++: } 在这个例子中,变量a是局部变量,变量b为局部静态变量.作用一说明了局部静态变量b的特性:在函数体,一个被声明为静态的变量

  • C/C++的关键字之static你了解吗

    目录 C语言 隐藏 场景演示 解决方法 保持变量内容的持久 默认初始化为0 Cpp static类成员变量 static类成员方法 单例模式 总结 C语言 隐藏 场景演示 当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性.会导致符号表认为存在同名全局变量和函数发生碰撞. 场景:全局的变量/函数在.h中会在多个.cc文件中拥有且全局可见有链接问题. a.h #pragma once #include<stdio.h> void Test() { printf(&

  • C/C++中的static关键字详解

    目录 C/C++ 中的 static 1. 静态局部变量 2. 静态全局变量 3. static 修饰函数 C++的 static 成员 静态成员变量 静态成员函数 总结: static是 C/C++中的关键字之一,是常见的函数与变量(C++中还包括类)的修饰符,它常被用来控制变量的存储方式和作用范围. 在众多高级语言中都有其作为关键字或函数出现,所以这也是应当被程序员熟知其各种含义的一个单词 我们知道在函数内部定义的变量,当程序执行到它的定义处时,编译器为它在栈上分配空间,函数在栈上分配的空间

  • c语言static关键字用法详解

    目录 1.static修饰全局变量 2.static修饰函数 3.static修饰局部变量 总结: 1.static修饰全局变量 我们创建两个源文件,一个test.c,一个main.c 现在我们在test.c文件下定义一个全局变量 int g_val = 100; 我们在main.c下进行调用打印g_val我们能访问到g_val吗? 答案是可以的 如果给g_val加上static修饰我们还能再main.c下访问到吗? static int g_val = 100; 这时候答案是不行的! 因此我们

  • C++11 关键字 const 使用小结

    Const 的作用及历史 const (computer programming) - Wikipedia 一.历史 按理来说,要想了解一件事物提出的原因,最好的办法就是去寻找当时的历史背景,以及围绕这件事所发生的故事. 可是非常抱歉,我并没没有找到C语言中const 提出的背景,但是一个可以参考的历史是,常量这种数据形式早在汇编语言中就有所体现,汇编语言中的constant 是一个确定的数值,在汇编阶段就可以确定直接编码在于指令代码中,不是保存在寄存器中的可以变化的量. 常量是需求,C 语言没

  • C 语言基础之C语言的常见关键字

    目录 ​1.auto 2.register 3.signed和unsigned 4.typedef 5.extern 6.拓展 首先我们简单的和这些关键字见见面(被高亮的关键字是今天要介绍的) 这其中有大家熟知的数据类型:int,char,float,double- 也有控制语句用到的:if,for,do- 还有一些就是今天主要介绍的关键字. 至于还有一些新增的关键字,以上表格未曾提到,大家如果想去了解,可自行查找. 个别术语介绍(可先跳过,后文如若遇到不懂,可回来了解) 自动变量:指的是局部作

  • C/C++举例讲解关键字的用法

    目录 static static修饰全局变量 static修饰局部变量 static修饰函数 const BOOL break continue static static修饰全局变量 static修饰的全局变量只能在当前声明文件内使用,不能够在其他文件中使用. 举例: static int a=0; //static修饰后变量a仅在本文件中可见,其他文件里不可见变量a(隐藏了),别的文件不可以调用 int b=0; //其他文件可以通过extern int b来使用本文件中的全局变量b 目标:

  • C语言详细分析讲解关键字enum与sizeof及typedef的用法

    目录 一.枚举类型的使用方法 二.sizeof 关键字的用法 三.typedef 的意义 四.小结 一.枚举类型的使用方法 enum 是 C 语言中的一种自定义类型 enum 值是可以根据需要自定义的整型值 第一个定义的 enum 值默认为 0 默认情况下的 enum 值是在前一个定义值的基础上加 1 enum 类型的变量只能取定义时的离散值 enum 中定义的值是C语言中真正意义上的常量 在工程中 enum 多用于定义整型常量 下面看一段 enum 的使用代码吧: #include<stdio

  • C语言详细分析讲解关键字const与volatile的用法

    目录 一.const 只读变量 二.const 全局变量的分歧 三.const 的本质 四.const 修饰函数参数和返回值 五.volatile 解析 六.小结 一.const 只读变量 const 修饰的变量是只读的,本质还是变量 const 修饰的局部变量在栈上分配空间 const 修饰的全局变量在全局数据区分配空间 const 只在编译期有用,在运行期无用 const 修饰的变量不是真的常量,它只是告诉编译器该变量不能出现在赋值符号的左边. 二.const 全局变量的分歧 在现代C语言编

  • C++示例讲解friend static const关键字的用法

    目录 一.友元函数 1.1重载operator<< 1.2友元函数 1.3友元类 二.关键字const 2.1const修饰类的成员函数 三.关键字static 3.1static类成员 3.2面试题 总结 一.友元函数 1.1重载operator<< 问题:现在我们尝试去重载operator<<,然后发现我们没办法将operator<<重载成成员函数.因为cout的输出流对象和隐含的this指针在抢占第一个参数的位置.this指针默认是第一个参数也就是左操

  • Java超详细分析讲解final关键字的用法

    目录 基本介绍 final细节01 final细节02 基本介绍 final 可以修饰类.属性.方法和局部变量. 在某些情况下,程序员可能有以下需求,就会使用到final: Base Sub 类 1)当不希望类被继承时,可以用final修饰. 2)当不希望父类的某个方法被子类覆盖/重写(override)时,可以用final关键字 修饰.[案例演示:访问修饰符 final 返回类型方法名] 3)当不希望类的的某个属性的值被修改,可以用final修饰.[案例演示: public final dou

  • 举例讲解Java的JSON类库GSON的基本用法

    GSON这个Java类库可以把Java对象转换成JSON,也可以把JSON字符串转换成一个相等的Java对象.Gson支持任意复杂Java对象包括没有源代码的对象. 其他的json解析库还有json-lib:Jackson:com.alibaba.fastjson 小编还是喜欢Google的Gson. 一.使用场景: java对象和json字符串的相互转换:日志输出. 例如: Logger logger = Logger.getLogger(CommonAction.class); Gson g

  • C语言详细分析讲解流程控制语句用法

    目录 一.分支语句 1.if语句 2.switch语句 二.循环语句 1.for语句 2.break和continue语句 3.循环嵌套 4.while和do…while语句 一.分支语句 1.if语句 流程控制语句可以让程序中的语句不再从上到下逐条执行 分支是一种流程控制语句,可以把程序中某些语句忽略掉不去执行 if关键字可以用来编写分支语句,只有当表达式为真时,才会执行对应语句 如果多个分支的逻辑表达式之间存在互斥关系,则可以采用else关键字把他们合并成一个分支语句 一个分支语句中的多个逻

  • 详解C/C++中const关键字的用法及其与宏常量的比较

    1.const关键字的性质 简单来说:const关键字修饰的变量具有常属性. 即它所修饰的变量不能被修改. 2.修饰局部变量 const int a = 10; int const b = 20; 这两种写法是等价的,都是表示变量的值不能被改变,需要注意的是,用const修饰变量时,一定要给变量初始化,否则之后就不能再进行赋值了,而且编译器也不允许不赋初值的写法: 在C++中不赋初值的表达一写出来,编译器即报错,且编译不通过. 在C中不赋初值的表达写出来时不报错,编译时只有警告,编译可以通过.而

  • 概述C++中的 public protected private friend关键字的用法

    一个C++类中的变量如果如下关键字作为修饰符. 1. public: 程序的任何地方都可以访问. 2 protected: 只有类本身及其派生类和其友元函数,友元类可以访问. 3 private: 只有类本身及其友元函数,友元类可以访问. 4 friend: 用于定义友元函数友元类. 在类里声明的一个普通函数,在前面加上friend修饰符,这个函数就可以访问该类的一切成员,包括private成员. 下面在看下c++ public private protected关键字 1.当在类的内部使用这三

随机推荐