(关键字,Static,typedef)-C语言笔记
  TEZNKK3IfmPf 2023年11月12日 21 0

1、常见关键词

一、数据类型关键字(12个)

(1) char :声明字符型变量或函数 

(2) double :声明双精度变量或函数 

(3) enum :声明枚举类型 

(4) float:声明浮点型变量或函数 

(5) int: 声明整型变量或函数 

(6) long :声明长整型变量或函数 

(7) short :声明短整型变量或函数 

(8) signed:声明有符号类型变量或函数 

(9) struct:声明结构体变量或函数 

(10) union:声明共用体(联合)数据类型 

(11) unsigned:声明无符号类型变量或函数 

(12) void :声明函数无返回值或无参数,声明无类型指针(基本上就这三个作用)

 

二、控制语句关键字(12个)

循环语句

(1) for:一种循环语句(可意会不可言传) 

(2) do :循环语句的循环体 

(3) while :循环语句的循环条件 

(4) break:跳出当前循环 

(5) continue:结束当前循环,开始下一轮循环 

条件语句 

(1)if: 条件语句 

(2)else :条件语句否定分支(与 if 连用) 

(3)goto:无条件跳转语句 

 

开关语句 

(1)switch :用于开关语句 

(2)case:开关语句分支 

(3)default:开关语句中的“其他”分支 

 

返回语句

return :子程序返回语句(可以带参数,也看不带参数)

 

三、存储类型关键字(4个)

(1)auto :声明自动变量 一般不使用 

(2)extern:声明变量是在其他文件正声明(也可以看做是引用变量) 

(3)register:声明积存器变量 

(4)static :声明静态变量

 

四、其它关键字(4个)

(1)const :声明只读变量 

(2)sizeof:计算数据类型长度 

(3)typedef:用以给数据类型取别名(当然还有其他作用 )

(4)volatile:说明变量在程序执行中可被隐含地改变

(关键字,Static,typedef)-C语言笔记

 

typedef表示类型重定义

//将unsigned int重命名为uint_32, 所以uint_32也是一个类型名
typedef unsigned int uint_32;
int main()
{
    //观察num1和num2,这两个变量的类型是一样的
    unsigned int num1 = 0;
    uint_32 num2 = 0;
    return 0;
 }

(2)static

static关键字有三个功能

  1. 修饰局部变量-静态局部变量
    结论:static修饰局部变量改变了变量的生命周期,让静态局部变量出了作用域依然存在,到程序结束,生命周期才结束。
//代码1
#include <stdio.h>
void test()
{
	int i = 0;
	i++;
	printf("%d ", i);
}
int main()
{
	int i = 0;
	for (i = 0; i < 10; i++)
	{
		test();
	}
	return 0;
}

输出结果为1 1 1 1 1 1 1 1 1 1

//代码2
#include <stdio.h>
void test()
{
	//static修饰局部变量
	static int i = 0;
	i++;
	printf("%d ", i);
}
int main()
{
	int i = 0;
	for (i = 0; i < 10; i++)
	{
		test();
	}
	return 0;
}

输出结果为1 2 3 4 5 6 7 8 9 10

修饰全局变量-静态全局变量
结论:一个全局变量被static修饰,使得这个全局变量只能在本源文件内使用,不能在其他源文件内使用。

//代码1
//add.c
int g_val = 2018;
//test.c
int main()
{
    printf("%d\n", g_val);
    return 0; }
//代码2
//add.c
static int g_val = 2018;
//test.c
int main()
{
    printf("%d\n", g_val);
    return 0; 
    }

代码1正常,代码2在编译的时候会出现连接性错误

  1. 修饰函数
    结论:一个函数被static修饰,使得这个函数只能在本源文件内使用,不能在其他源文件内使用。
//代码1
//add.c
int Add(int x, int y) {
    return c+y; }
//test.c
int main()
{
    printf("%d\n", Add(2, 3));
    return 0; }
//代码2
//add.c
//static修饰函数
static int Add(int x, int y) {
    return c+y; }
//test.c
int main()
{
    printf("%d\n", Add(2, 3));
    return 0; 
  }

代码1正常,代码2在编译的时候会出现连接性错误

(3)#define 定义常量和宏

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
//define定义标识符常量
#define MAX 1000
//define定义宏
#define ADD(x, y) ((x)+(y))//表示两数求和
#include <stdio.h>
int main()
{
	int sum = 0;
	printf("MAX = %d\n", MAX);
	sum = 10 * ADD(2, 3);
	printf("sum = %d\n", sum);
	return 0;
}
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月12日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   2024年03月29日   103   0   0 c语言字符
  TEZNKK3IfmPf   2024年03月30日   151   0   0 C++c语言
  TEZNKK3IfmPf   2024年04月19日   54   0   0 进程c语言
TEZNKK3IfmPf