课程2——变量修饰关键字
声明:本系列随笔主要用于记录c语言的常备知识点,不能保证所有知识正确性,欢迎大家阅读、学习、批评、指正!!你们的鼓励是我前进的动力。严禁用于私人目的。转载请注明出处:http://www.cnblogs.com/myblesh/
1.关键字概述:
C语言中的变量可以有自己的属性。
在定义变量的时候可以加上属性关键字。
“属性”关键字指明变量的特有意义 。
下面分析常用的auto、register、static三个常用关键字。
2.auto
auto即C语言中局部变量的默认属性
编译器默认所有的局部变量都是auto的
auto修饰的变量在栈空间分布。
3.static
指明变量的静态属性;
同时具有“作用域限定符”的作用;
static修饰的变量存储在静态数据区;
4.register
将变量存储于寄存器中;register只是请求寄存器变量,不一定每次都能请求成功;
Note:(1)register的变量必须是cpu可接受的变量值;(2)不能用&取地址符作用域于register修饰的变量
5.代码示例分析

#include <stdio.h> int main()
{
auto int i = 0;
register int j = 0;
static int k = 0; return 0;
}

#include <stdio.h> void func1()
{
int i = 0;//在栈空间上分布,每次调用完释放
i++;
printf("%d\n",i);
} void func2()
{
static int i = 0;//在静态数据区分配空间;等价于变量i只被初始化一次
i++;
printf("%d\n",i);
} int main()
{
for(int i = 0;i<10;i++)
{
func1();
}
for(int i = 0;i<10;i++)
{
func2();
}
return 0;
}
6.小结
auto变量存储在程序的栈中,默认属性;
static变量存储在程序静态区; static修饰的全局变量作用域只是声明的文件中;static修饰的函数作用域只是声明的文件中
register变量请求存储于cpu寄存器中,不在内存中,没有地址故不能用&;主要用于实时系统中,使用在运行速度要求很高的系统 。
课程2——变量修饰关键字的更多相关文章
- 张超超OC基础回顾04_实例变量修饰(@public),点语法,self关键字,多态,继承
零.实例变量修饰符 /* @public 就是实例变量修饰符 @public >可以在其它类中访问被public修饰的成员变量 >也可以在本类中访问被public修饰的成员变量 >可 ...
- Objective-C 【继承、变量修饰符(私有变量/方法)、description方法】
------------------------------------------- 继承 一段代码: #import <Foundation/Foundation.h> @interf ...
- c语言学习之基础知识点介绍(十八):几个修饰关键字和内存分区
一.几个修饰关键字 全局变量: 全局变量跟函数一样也分为声明和实现.如果是全局变量,实现在它调用之后,那么需要在调用之前进行声明.注意:全局变量的声明只能写在函数外,写在函数就不是全局变量了而是局部变 ...
- GLSL ES 中的存储变量修饰符(const/attribute/uniform/varying/in/centroid in/out/centroid out)
GLSL ES 3.00 中支持的存储变量修饰符 变量名称 作用 示例 const 编译过程常量,或者函数的只读参数 const vec3 zAxis = vec3 (0.0, 0.0, 1.0); ...
- 四.OC基础--1.文档安装和方法重载,2.self和super&static,3.继承和派生,4.实例变量修饰符 ,5.私有变量&私有方法,6.description方法
四.OC基础--1.文档安装和方法重载, 1. 在线安装 xcode-> 系统偏好设置->DownLoads->Doucument->下载 2. 离线安装 百度xcode文档 ...
- 对访问修饰关键字public, protected, internal and private的说明
对访问修饰关键字public, protected, internal and private的说明1.msdn: Internal types or members are accessible o ...
- java中的类修饰符、成员变量修饰符、方法修饰符。
类修饰符: public(访问控制符),将一个类声明为公共类,他可以被任何对象访问,一个程序的主类必须是公共类. abstract,将一个类声明为抽象类,没有实现的方法,需要子类提供方法实现. fin ...
- oc-19-成员变量修饰符
/** 成员变量修饰符 1.@public:(公开)只要导入头文件,任何位置都可以直接访问. 2.@protected:(半公开)可以在本类和子类当中进行访问.(默认) 3.@private:(私有) ...
- OC继承以及实例变量修饰符
这里基本上跟java一样 所以就简单写几点要注意的: 1)OC与java一样都只支持单继承可以多层继承(java单继承多实现) 2) OC中的实例变量修饰符前要加 @ 例如 @private 例如下面 ...
随机推荐
- php 安全过滤函数代码
php 安全过滤函数代码,防止用户恶意输入内容. //安全过滤输入[jb] function check_str($string, $isurl = false) { $string = preg_r ...
- iOS自定义AlertView 与 ActionSheet 遮罩提示+弹出动画
产品大人总是能够想到很多让人欣慰的点子,基本所有能提示的地方都要很多文案啊图片之类 由此封装了一个半透明黑色遮罩的alert类(假装有图.jpg) 代码略糙,just share (逃 下载链接
- OC数组排序
NSArray *array = @[@"tailong", @"kaersasi", @"airuiliya", @"yingl ...
- iOS开发之保存照片到系统相册(Photo Album)
iOS开发之保存照片到系统相册(Photo Album) 保存照片到系统相册这个功能很多社交类的APP都有的,今天我们简单讲解一下,如何将图片保存到系统相册(Photo Album). 创建UIIma ...
- 小波说雨燕 第三季 构建 swift UI 之 度假清单 学习笔记
最终的效果: <1>第一个场景: 1.本地化 界面简体中文化 Supporting Files - info.plist Localization native development r ...
- Navicat 连接 Oracle数据库 提示 cannot load OCI DLL 的解决
一.32位系统下 cannot load OCI DLL,126 解决方法:工具->选项->OCI 选择oracle安装目录下bin里面的oci.dll 二 .在64位系统下安装了Orac ...
- python idle 清屏问题的解决
在学习和使用python的过程中,少不了要与python idle打交道.但使用python idle都会遇到一个常见而又懊恼的问题——要怎么清屏? 我在stackoverflow看到这样两种答案 ...
- Bootstrap的优先级、选择器、伪类
概述:Bootstrap的CSS组件的核心就是选择器的定义以及在各自优先级上的处理.由于大部分的选择器都非常的常见就一笔带过了,这里重点介绍一下Bootstrap用到的知识点. 一.优先级 之前我们使 ...
- 深入剖析js命名空间函数namespace
在看阿里员工写的开源数据库连接池的druid的源代码时,发现了其中在jquery的原代码中又定义了一个命名空间的函数:$.namespace(),其代码如下: 网址为:https://github.c ...
- SQL中获取最近的N个半年度
直接上代码: --获取往前推的N个半年度 CREATE FUNCTION F3_GetRecentNHalfYear ( @N INT ) RETURNS @Result TABLE ( Year S ...