C语言经典100例题(45)--学习使用register定义变量的方法

目录

题目

问题分析

代码

运行结果


题目

学习使用register定义变量的方法

问题分析

register是做声明的,为了提高效率。 register变量不能做取地址运算符&操作。

声明变量具有register储类型就要求编译器把变量存储在寄存器中,而不是像其他变量一样保留在内存中。 (寄存器是驻留在计算机CPU中的存储单元。存储在寄存器中的数据会比存储在普通内存中的数据访问和更新的速度更快。)指明变量的存储类型是register是一种请求,而不是命令。编译器可以选择把register型变量存储在内存中。

register存储类型只对声明在块内的变量有效。register变量具有和auto变量一样的存储期限、作用域和链接。但是,register变量缺乏auto变量所具有的一种性质: 由于寄存器没有地址,所以对register变量使用取地址运算符&是非法的。即使编译器选择把变量存储在内存中,这一限制仍适用。

regste存储类型最好用于需要频繁进行访问或更新的变量。例如,在for语句中的循环控制变量就比较适合声明为register。

代码

复制代码
#include<stdio.h>
void main()
{
	register int i;
	int tmp = 0;
	for (i = 1;i <= 100;i++)
		tmp += i;
	printf("The sum is %d\n", tmp);
}

运行结果

相关推荐
AI人工智能+电脑小能手2 分钟前
【大白话说Java面试题 第86题】【Mysql篇】第16题:MySQL 中锁的种类与行锁实现原理?
java·开发语言·数据库·mysql·面试
不爱编程的小陈2 分钟前
Go内存模型与GC机制:高性能编程的核心
开发语言·后端·golang
右耳朵猫AI7 分钟前
PHP技术周刊 2026年第20周
开发语言·php
AugustRed9 分钟前
Flyway 数据库版本迁移 零基础完整学习文档
数据库·学习
我的xiaodoujiao13 分钟前
API 接口自动化测试详细图文教程学习系列23--结合Pytest框架使用4-前后置处理
python·学习·测试工具·pytest
USC-XiangLuXun13 分钟前
局部科技小创新是有意义的
科技·学习·生活
方也_arkling18 分钟前
【Java-Day12】接口
java·开发语言
小小de风呀21 分钟前
de风——【从零开始学 C++】(十)vector的模拟实现
开发语言·c++
Upsy-Daisy22 分钟前
IOTA 学习笔记(三):IOTA 的技术演进路线
笔记·学习
右耳朵猫AI27 分钟前
Rust技术周刊 2026年第20周
开发语言·后端·rust