栏目分类:
子分类:
返回
文库吧用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
文库吧 > IT > 软件开发 > 后端开发 > Java

【C语言从初阶到进阶】第二篇 初始C语言(二)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【C语言从初阶到进阶】第二篇 初始C语言(二)

目录
  • ✨前言
  • 一.常见的关键字
    • 1.关键字typedef
    • 2.关键字static
      • 下面我们先来了解内存的分布
      • 2.1修饰局部变量
        • 代码演示:
        • 总结
      • 2.2修饰全局变量
        • 代码演示
        • 总结
      • 2.3修饰函数
        • 代码演示
        • 总结
  • 二.❤️#define定义常量和宏
      • 代码演示
  • 三.指针
    • 1.内存
      • 代码演示
    • 2.指针的使用
        • 代码演示:
    • 3.指针变量的大小
        • 代码演示:
        • 总结
  • 四.结构体
      • 代码演示:
  • 总结

✨前言

这里接着上一解初始C语言讲,前提还是对C语言有一个大概的了解,形成一个框架。

<

一.常见的关键字


注意:这里关键字都是语言本身设定好的,自己不能创建。

下面我们简单来接一些关键字的用法

1.关键字typedef

typedef 顾名思义是类型定义,这里应该理解为类型重命名。

下面我们用一段代码来解释上面这句话的意思。

//将unsigned int 重命名为uint_32, 所以uint_32也是一个类型名
#include
typedef unsigned int uint_32;
int main()
{
	
	unsigned int num1 = 10;
	uint_32 num2 = 10;
	printf("%d %d", num1, num2);
	return 0;
}

输出结果为 10 10

2.关键字static

在C语言中:
static是用来修饰变量和函数的

  1. 修饰局部变量-称为静态局部变量
  2. 修饰全局变量-称为静态全局变量
  3. 修饰函数-称为静态函数
下面我们先来了解内存的分布

2.1修饰局部变量 代码演示:

两个代码不同之处就是static,那么输出结果会有什么差异呢?
左边输出:2 2 2 2 2 2 2 2 2 2
右边输出:2 3 4 5 6 7 8 9 10 11

总结

为什么缺少一个static会出现这样的结果呢?下面我会大家总结一下,static 修饰局部变量的时候,改变了变量的存储类型,普通的局部变量是存储在栈区,而被static修饰的变量改变了存储类型,变成了静态区的变量,出来作用域不会被销毁,上面左边那个代码,a被赋值为1,后置++为2,a出了作用域就就被销毁了,重新在调用test函数时,a又被重新赋值为2,直到循环结束。而static修饰的变量,出来作用域不会被销毁,依然存在。

所以静态变量的生命周期就是程序的生命周期,程序结束的时候,静态变量才回收空间。

2.2修饰全局变量 代码演示


输出:报错

总结

全局变量是具有外部链接属性
static修饰全局变量的时候
这个全局变量的外部链接属性就变成了内部链接属性
这个全局变量只能在自己所在的.c文件中看到,其他源文件看不到了
不能在其他源文件中使用。

2.3修饰函数 代码演示


输出:还是报错

总结

函数本身是具有外部链接属性
如果static修饰函数,函数的外部链接属性就变成
了内部链接属性
这个函数只能在自己所在的源文件内部使用,其他
源文件不发使用该函数

二.❤️#define定义常量和宏 代码演示


宏的本质是将x和y的值替换成a和b,而函数是将a和b传给x和y,再将最后值返回输出,他是有一个过程,大家可以将这个代码敲一下,感受一下。

这里的#define定义常量在这里就不讲了,我在初始C语言(一)讲到过
大家可以去看看这个
初始C语言(一)

三.指针 1.内存

内存是电脑上特别重要的存储器,计算机中程序的运行都是在内存中进行的 。
所以为了有效的使用内存,就把内存划分成一个个小的内存单元,每个内存单元的大小是1个字节。
为了能够有效的访问到内存的每个单元,就给内存单元进行了编号,这些编号被称为该内存单元的地址

代码演示


变量是创建内存中的(在内存中分配空间的),每个内存单元都有地址,所以变量也是有地址的。

2.指针的使用 代码演示:

以整形指针举例,可以推广到其他类型,如:

#include 
int main()
{
   char ch = 'w';
   char* pc = &ch;
   *pc = 'q';
   printf("%cn", ch);
   return 0;
 }
3.指针变量的大小 代码演示:

x86(32位机器)的环境下输出4,x64(64位机器)的环境下输出8

总结

32位机器 - 一个地址是32个二进制位,存储需要32个bit位的空间,所32位机器上,指针变量的大小是4个字节
//64位机器 - 一个地址是64个二进制位,存储需要64个bit位的空间,所64位机器上,指针变量的大小是8个字节

四.结构体

结构体是由一批数据组合而成的结构型数据。组成结构型数据的每个数据称为结构型数据的“成员” ,其描述了一块内存区间的大小及解释意义,在c语言中也是比较重要的。

比如描述学生,学生包含: 名字+年龄+性别+学号 这几项信息。

代码演示:

代码一

#include
//创建一个结构体
struct Stu
{
	char name[20];//姓名
	int age;//年龄
	char sex[5];//性别
	char id[12];//学号
};
int main()
{
	struct Stu s = {"liming", 20, "nv", "2022010578"};//初始化
	printf("%s %d %s %sn", s.name, s.age, s.sex, s.id);//打印
	//结构体变量.结构体成员
	return 0;
}

代码二

#include
struct Stu
{
	char name[20];
	int age;
	char sex[5];
	char id[12];
};

void print(struct Stu* ps)
{
	printf("%s %d %s %sn", (*ps).name, (*ps).age, (*ps).sex, (*ps).id);
	printf("%s %d %s %sn", ps->name, ps->age, ps->sex, ps->id);
	//结构体指针->结构体成员
}
int main()
{

	struct Stu s = { "zhangsan", 20, "nan", "2022010578" };
	print(&s);//函数调用,取出s的地址。
	return 0;
}

上面我们讲到三种结构体的打印。

总结

今天,初始C语言就完了,下期预告【C语言从初阶到进阶】第三篇,C语言分支循环详解。
感谢各位观看,码文不易,三连击走起来殺。

转载请注明:文章转载自 www.wk8.com.cn
本文地址:https://www.wk8.com.cn/it/1040435.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 wk8.com.cn

ICP备案号:晋ICP备2021003244-6号