IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 初识C语言(二) -> 正文阅读

[C++知识库]初识C语言(二)

? ? 亲爱的小伙伴们,小小编又来了,今天我们来简单认识一下C语言的知识,每天学一点,停止不前,一直努力呦!

一:初识简单关键字

1、register

register是寄存器的意思,其处理速度比较快,那么有些同学会问,数据在哪存储呢?小编在这给大家简单画一下数据存储的金字塔!

?

? ? 在通过上面的金字塔我们不难发现,在金字塔的顶端是寄存器,其单位是字节,越往下内存单位越大,造价越来越便宜。为了使计算机的处理速度变快,我们会将数据一级一级往上传递,传递给寄存器,再由寄存器将数据给CPU,让CPU进行处理。

2.typedef
1.typedef定义无符号的整形
typedef unsigened int uint;
//typedef的作用是对其变量名称进行重命名,使得变量的类型名更简单明了,此时unsigened int =uint;
2.typedef定义结构体
typedef struct boy
{
    char []name;
    int age;
    double height;
}Boy;
//将所定义的结构体类型由struct boy=Boy 
//减少代码的输入量

3.static 关键字
  三大作用
    1.修饰局部变量
    2.修饰全局变量
    3.修饰函数

?我们来看static 修饰局部变量,会发生哪些奇怪的代码反应呢?

?

#include <stdio.h>
int test(int a)
{
	int b = 0;
	b = b + 1;
	return (a + b);
}

int main()
{
	int a = 5;
	int i = 0;
	int sum = 0;
	while (i < 5)
	{
		 sum=test(a);
		printf("%d\n", sum);
		i++;
	}
//这是我们平常的代码,不看出,在test函数里面,b是局部变量,从作用域开始到作用域结束,其函数就被销毁了,其里面的局部变量也就被销毁了。因此,针对此程序,sum输出的值都是6

?那加static呢?我们来看看

#include <stdio.h>
int test(int a)
{
	  static int b = 0;
	b = b + 1;
	return (a + b);
}

int main()
{
	int a = 5;
	int i = 0;
	int sum = 0;
	while (i < 5)
	{
		 sum=test(a);
		printf("%d\n", sum);
		i++;
	}

}

小编在此为大家奉上运行结果?

大家有没有发现,打印出来的值不同了。为什么呢?

当static修饰局部变量时,其变量就会变成静态变量,那么静态变量会随着整个程序的结束而结束,所以被static修饰的变量b之后,b的生命周期延长了,那么b变量的释放是随着整个程序的结束,所以b的值每次都+1,随后便会打印出如右图的结果

?

底层框架是怎样的?我们来简单了解一下内存图,这是内存图!

?

?

不难总结出:普通的局部变量是放在栈区的?,那么其生命周期从作用域开始到作用域结束

?被static 修饰的局部变量,会被放在静态区里面,放在静态区里面的变量,其生命周期的结束是整个程序的结束

我们来做一个总结:、static 改变了局部变量的存储位置,由原来的在栈区到静态区,使得局部变量的属性发生变化,但本身局部变量的作用域不变!

接下来,我们来看看被static 修饰的其他两种:

1.static修饰全局变量

?

以上图为static所修饰的全局变量,不难看出,被static修饰的全局变量,在文件A里面可以用,在文件B 就不能使用!为什么呢?

全局变量:本身具有外部连接的属性,言简意赅的意思是:在A里面定义的全局变量,通过extern关键字声明,可以在B文件来使用!

加了static之后呢!

static 对全局变量修饰之后,即文件A所创立的全局变量不能在B里面使用

2.static修饰的函数

?

声明之后,文件A里面的函数不能在文件B里面使用?

二:#define的简单使用

#define M  100//define修饰常量
#define Add(x,y) ((x)+(y))//由define所创建的宏
   

//如何实现宏
//宏的简单使用,相当于一个简单的函数

#include <stdio.h>
int main()
{  

   int a=10;
   int b=20; 
   int c=0;
   c=Add(a,b);
   printf("%d",c);
   return 0;
}

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-10-22 20:56:54  更:2022-10-22 20:59:18 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 6:40:40-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码