C语言---关于关键字const与static的简单理解
1.const:限定符的一种,个人对const的浅显理解就是一直将const限定的对象看作常量较好理解,声明变量和数组时较简单,在这里主要讲讲在指针和形参中使用const,简单来说const放在*左侧,指针指向的数据不能改变,放在右侧,指针指向不能改变。
char y[]="helloworld",x[]="2018";char *const p1=y;//可看作p1的地址被const变为常量,不可再变 char const *p2=y;//可看作将*p2的值都变做常量,p2,p3相同意思const char *p3=y; const char const *p//指向不可变字符的不可变指针 p1=x;//地址已经是常量,不可在改变指向,错误 p2=x;//指向的字符串为常量,但指针指向并未限定,可变 *p1='x';//指针指向已被限定,当指向的字符串可改变 *p2='x';// 指向的字符串为常量,不可再变,错误
注:const int a[]与const int *a相同,另外,可以把const以及非const数据的地址初始化为指向const的指针或为其赋值,当是不能把const指针赋给普通指针。
int rates[]={1,2,3};
const int rock={4,5,6};
const int *pc=rates;//合法
pc=&rate[1];//合法
pc=rock//合法
int *pnc=rate;//合法
pnc=rock; //错误
2,static关键字:,这个关键字到目前为止基本没有接触到,百度了才发现作用是相当的多,在这里谈谈目前接触到的用法
static全局变量与static函数作用相似,主要是用来限制被修饰的函数或变量作用域为本文件,外部文件不能调用,目前很少接触,局部变量主要是让一个变量长期有效,保存了前次调用所留下来的值,以便下次调用。
#include<stdio.h>
static int a=2018;//全局变量
static void func(void) //static函数,限制了该函数只能该文件自己利用
{static int b;//局部变量,保持了上一次调用的值 printf("a=%d,b=%d\n",++a,++b);
}
int main()
{func();//2019,1func();//2020,2func();//2021,3return 0;
}
注:这里的a=2019,20,21,跟static没有任何关系,主要是a为全局变量,作用域也包括函数。
C语言---关于关键字const与static的简单理解相关推荐
- C语言中关键字const、typedef
const:const是C语言的一个关键字,是用来定义常量的.const是常属性的意思,当一个变量被const修饰之后,其值不能再被改变了,但它仍然是一个变量,只不过有了常属性. 我们如何才能验证这一 ...
- c语言理解参数,c语言中对可变参数列表的简单理解
函数原型中一般情况下参数的数目是固定的,但是如果想在不同的时候接收不定数目的参数时该怎么办呢?c语言提供了可变参数列表来实现. 可变参数列表是通过宏来实现的,这些宏定义在stdarg.h的头文件中.头 ...
- 【C语言】关键字const详解 - 变量守护者
为什么说const是变量守护者? 首先我们先从字面认识一下const: 作用如其意,const用于修饰变量,将其变为某种意义上的"常量".我们知道,常量是不可以被赋值的,所以被co ...
- C语言--结构体与内存对齐准则简单理解
平时基本不涉及这个问题,被问起才发现没那么简单... 一,结构体:内存中所有类型字节之和 #include<stdio.h> struct icd {int a;char b;double ...
- C语言 const、static、volatile等关键字的作用
目录 前言 const static volatile extern 总结 前言 C语言里面有许多关键字,本文结合我自己的了解简单讲讲几个常用关键字的作用. const 问:const有什么用? 答: ...
- c语言static. volatile,嵌入式系统C语言重点语法const、volatile、static、堆栈等的意义及用法...
原标题:嵌入式系统C语言重点语法const.volatile.static.堆栈等的意义及用法 在单片机应用中,堆栈是个特殊的存储区,主要功能是暂时存放数据和地址,通常用来保护断点和现场. 要点:堆, ...
- C语言再学习 -- 关键字const
const 关键字其实我们并不陌生,之前有讲过const修饰数组和指针.现在来详细介绍这个关键字. 参看:[C/C++和指针]著名的<const的思考> 一.const 介绍 1.cons ...
- c++语言常量,Go语言常量和const关键字
Go语言中的常量使用关键字 const 定义,用于存储不会改变的数据,常量是在编译时被创建的,即使定义在函数内部也是如此,并且只能是布尔型.数字型(整数型.浮点型和复数)和字符串型.由于编译时的限制, ...
- C语言关键字----Const
C中CONST的使用: 虽然这听起来很简单,但实际上,const的使用也是c语言中一个比较微妙的地方,微妙在何处呢?请看下面几个问题. 问题:const变量 & 常量 为什么下面的例子在使用一 ...
最新文章
- Hinton:胶囊网络的专利是我的了!
- Node.js in IIS — Hello World
- AliSQL 20170716版本发布 Invisible Indexes 功能和 SELECT FROM UPDATE 语法
- mysql 实时血备份_windows下设置自动备份 mysql 批处理
- input type=submit 和button的区别及表单提交
- 最优化学习笔记(四)——最速下降法
- 2020年11月“省时查报告”十大热门报告盘点(文末附热门报告列表)
- snort简介以及在Ubuntu下的安装
- 谷歌在线办公法器-Google Docs
- MAC:一个数据缓冲区,作为参数传递到另外一个函数就崩溃
- C++:n个清屏函数(缓冲清屏不闪屏)
- WPS无法使用复制粘贴快捷键
- 北大青鸟python学费_北大青鸟学费贵吗,北大青鸟学费标准_北大青鸟综合校区为您解答...
- Python3.7出现RuntimeError: generator raised StopIteration异常
- iTop4412 Booting Sequence
- 思绪——关于《朝花夕誓——于离别之朝束起约定之花》
- go 字符串分割数组
- python代替易语言_基于hook的python机器人,彻底取代itchat
- 阿龙的学习笔记---3.26---常用的各种树
- Jetpack:Lifecycle 和 LiveData