大家好,我是灰帽小张,很累,刚刚整理一天发了前面的博客,累死了。打卡学习的第四天,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;
}
局部变量存储在栈区,生命周期就是局部变量的作用域:
static修饰局部变量时,局部变量存储在静态区,本质上改变了存储位置,生命周期变长,为整个程序的生命周期:
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;
}
static修饰全局变量:staitic修饰全局变量,不再具有外部链接属性,就变成了内部链接属性,其他源文件(.c)不可再使用这个全局变量。
3.修饰函数:
#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;
}
static修饰函数:static修饰函数,函数不具有外部链接属性,其他源文件(.c)不可再使用这个函数。
二、#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;
}
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;
}
结束语:
希望有人可以看看。