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语言基础知识(3) -> 正文阅读

[C++知识库]初识C语言——C语言基础知识(3)

? ?大家好,我是Brant_zero

? ?接下来为大家带来剩下4部分的C语言基础认识,这剩下的4个部分难度比较大了,大家做个基本了解。

目录

一.常见关键字

1.关键字typedef

2.关键字static

1.修饰局部变量

2.修饰全局变量

二.define定义变量和宏??

定义宏

定义函数宏(宏函数)

三.指针

四.结构体


一.常见关键字

? ?关键字有很多,这里就不一一介绍了,主要给大家介绍以下两种关键字,typedef和static关键字,还有许多关键字会在以后碰到给大家介绍。
以下就是C语言中全部的关键字有一些大家应该也见过。

auto ?break ?case ?char ?const ?continue ?default ?do ?double else ?enum 
extern float ?for ?goto ?if ?int ?long ?register ??return ?short ?signed
?sizeof ?static struct ?switch ?typedef union ?unsigned ?void ?volatile ?while

1.关键字typedef

? ?typedef 顾名思义就是类型定义,这里应该理解类型重定义

比如

定义unsigned int (无符号整形)重命名为 u_n,则u_n就也代表无符号整形的意思了

typedef unsigned int u_n;

int main ()
{
  unsigned int num1=0;
  u_n num=0;
  return 0;
}

? ?即上面的num1和num1是等价的,所以typedef类似于起别名起外号的感觉,减少赘余。

2.关键字static

在C语言中:

staic可以用来修饰变量

1.修饰局部变量-称为静态局部变量

2.修饰全局变量-称为静态全局变量

1.修饰局部变量

这里我引用一个例子,我们可以理解为static修饰的局部变量只有第一次定义时的赋值,而下一次被调用的时候这个变量不会被重新定义,会延续上次的值,这就是static的一部分作用

#include <stdio.h>
void test()
{
	static int i = 0;
	i++;
	printf("%d ", i);
}
int main()
{
	int i = 0;
	for (i = 0; i < 10; i++)
	{
		test();
	}
	return 0;
}

如果不加static:

?

?

除了以上可见的作用,可以体现static的另一部分隐含的作用是延长声明周期,使static修饰局部变量i改变了变量的生命周期让静态局部变量出了作用域依然存在,到程序结束,生命周期才结束。

2.修饰全局变量

全局变量被statci修饰,会使得这个全局变量只能在本源文件中使用,不能在其他的源文件内使用

源文件一:
#include <stdio.h>
extern int c;
int main()
{
	printf("%d ", c);
	return 0;
}
源文件二:
static int c = 20;

static修饰全局变量时,使得这个全局变量只能在本源文件内使用,不能在其他源文件内使
用。如果不加这个static,源文件一中的打印就会正常执行。

二.define定义变量和宏??

关于define定义变量在初始C语言(2)中有讲解了,这里介绍以下define定义宏:

定义宏

宏定义可以:提高效率、可读性、易改型、核心是可替换

定义方式:

#define 标识符 字符串

标识符:宏定义的名字

字符串:常数、表达式、格式串等

定义函数宏(宏函数)

通常使用函数宏来进行定义,使用do{……}while(0)构造后的宏定义不会受到大括号、分号的影响,总会是按你期望的方式调行运行。

举个栗子:

#define??ADD do{? (x, y) ((x)+(y))? }? ?while(0);(记得这个分号)

#define ADD do{?
               (x, y) ((x)+(y))? 
              }while(0);

#include <stdio.h>
int main()
{
??int sum = ADD(2, 3);
??printf("sum = %d\n", sum);
?
??sum = 10*ADD(2, 3);
??printf("sum = %d\n", sum);
?
??return 0;
}

三.指针

指针就是内存,指针是C语言的灵魂,不掌握指针的相当于没掌握C语言,但是指针的难度相当于其他内容也是更加的复杂,需要对内存以及数据的存储方式有一定的了解,是一个十分巨有难度的知识点

这里不做太多的讲解

在后期,会有大量大量非常大量的讲解(不是因为懒)

四.结构体

结构体是C语言中特别重要的知识点,结构体使得C语言有能力描述复杂类型的能力;

比如描述学生的名字+年龄+性别+学号

如果有很多学生,一个一个创建变量就会显得太多赘余

所以,这里只能使用结构体来描述了

例如:

struct stu

{

char nane【20】;

int age;

char sex[5]

char id [5];

};(注意这里有一个分号!!!!)

结构体的初始化:

为结构体赋值:

定义一个结构体s:struct stu s={"Brant",20,"男“,“20180101”};

这里介绍一个结构体的操作符:点操作符(.);

用点操作符来访问结构体成员

printf ("name =%s age =%d sex =%s id =%s\n",s.name,s.age,s.sex,s.id);

(这样就可以打印各结构体成员了)

? ?再介绍一个操作符:(->)操作符

这个操作符是给指针使用的,使用方法如下:

struct Stu *ps =&s;(先使指针ps指向结构体s,然后再配合(->)就可以访问结构体成员了)

printf ("name =%s age=%d sex =%s id = %s \n",ps->name,ps->age,ps->sex,ps->id);

? ?就可以了打印出结构体s 的成员了。

? ?结构体总的来说初步认识还是比较简单的,就是格式掌握就算基础了解他的功能了。当然结构体还有许多作用,我会在以后娓娓道来。

? ?关于C语言的内容还有很多,这只是大致的框架让大家有所认识,更加具体的知识我会在后面的学习中带给大家。

? ?介绍到这里,初始C语言的内容也就介绍完了,后续会对这些介绍的内容进行更具体的讲解,希望大家可以留下关注,大家一起学习C语言,一起进步;

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-01-16 12:51:59  更:2022-01-16 12:52:37 
 
开发: 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年11日历 -2024/11/24 10:31:17-

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