初识C语言——认识关键字和#define定义常量和宏的一天

大家好,我是灰帽小张,很累,刚刚整理一天发了前面的博客,累死了。打卡学习的第四天,10.25,诸君共勉。

一、认识关键字:

关键字的学习:auto自动
循环语句:for,while,do while,break,continue
选择语句:if else,switch,case,default
数据类型:char,short,int,long,float,double,signed有符号的,unsigned无符号的
计算大小:sizeof
常属性:const
自定义的类:enum枚举类型,struct结构体,union联合体
声明外部符号:extern
寄存器:register
函数返回值:return
静态:static
类型重命名:typedef

//void无(函数的返回类型,函数参数)
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main() {
	auto int a = 10;//局部变量前都有auto,表示自动
	return 0;
}

1.关键字:typedef类型重命名:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
typedef unsigned int uint_32;//将unsigned int重命名为uint_32
typedef struct Node {
	int data;
	struct Node* next;
}Node;//将结构体struct Node 重命名为Node
int main() {
	unsigned int  a = 10;
	uint_32 a = 10;
	
	struct Node n;
	Node n2;

	return 0;
}

2.关键字static:

1.修饰局部变量;

1.static修饰局部变量时,局部变量存储在静态区,本质上改变了存储位置,生命周期变长,为整个程序的生命周期:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
void test()
{
	//int a = 1;//局部变量存储在栈区,生命周期就是局部变量的作用域
	//a++;
	//printf("%d ",a );//输出2 2 2 2 2 2 2 2 2 2

	static int a = 1;
	a++;
	printf("%d ", a);//输出结果为2 3 4 5 6 7 8 9 10 11
}
int main() 
{
	int i = 0;
	while (i < 10)
	{
		test();
		i++;
	}
	return 0;
}

局部变量存储在栈区,生命周期就是局部变量的作用域:
image.png
static修饰局部变量时,局部变量存储在静态区,本质上改变了存储位置,生命周期变长,为整个程序的生命周期:
image.png

2.修饰全局变量;

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
extern int a;//声明外部符号
int main() 
{
	int b = 20;
	int sum = a + b;
	printf("%d", sum);
	return 0;
}

image.png
image.png
static修饰全局变量:staitic修饰全局变量,不再具有外部链接属性,就变成了内部链接属性,其他源文件(.c)不可再使用这个全局变量。
image.png
image.png

3.修饰函数:

image.png

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main() {
	int a = 10;
	int b = 20;
	int sum = Add(10, 20);
	printf("%d", sum);
	return 0;
}

image.png
static修饰函数:static修饰函数,函数不具有外部链接属性,其他源文件(.c)不可再使用这个函数。
image.png

二、#define定义常量和宏:

//define不是关键字,是预处理指令。

1.#define定义常量:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#define NUM 100
int main() {
	printf("%d\n", NUM);
	int a = NUM;
	printf("%d\n", a);
	int arr[NUM];
	return 0;
}

image.png

2.#define定义宏体:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#define ADD(x,y) ((x)+(y))//ADD宏名,x,y宏的参数
int main() {
	int a = 10;
	int b = 20;
	int c = ADD(a, b);//int c =((a)+(b))
	printf("%d", c);
	return 0;
}

image.png
结束语:
希望有人可以看看。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值