c语言零碎的小东西

目录

一、什么是C语言?

二、常见关键字

 1.关键字 typedef

 2.关键字 register

三、数据类型          

四、ASCII码表

五、变量类型

1.全局变量

2.局部变量

六、C语言中的常量

1.字面常量

2.const修饰的常变量

3.#define 定义的标识符常量

4.枚举常量

七、转义字符

转义字符表

八、逗号表达式

九、scanf的实质问题

十、static - 静态的

1. static可以修饰局部变量

2. static可以修饰全局变量

3. static可以修饰函数

十一、define 定义宏


一、什么是C语言?

        C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语 言。 尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的 C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超 级电脑等作业平台。二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制 定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。 [1] 目前2011年12月8 日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标 准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉 字编程。 C语言是一门面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同。 其编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo 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 重命名为uint_32, 所以uint_32也是一个类型名
typedef unsigned int uint_32;
int main()
{
    //观察num1和num2,这两个变量的类型是一样的
    unsigned int num1 = 0;
    uint_32 num2 = 0;
    return 0;
}

 2.关键字 register

寄存器变量是不能取地址的,为什么呢?

register 起到一个建议的作用,建议将num的值放在寄存器中,最终是由编译器决定的

int main()
{
	register int num = 10;
	return 0;
}

简单记录一下CPU处理器的工作方式

三、数据类型          

char       short       int          long          

long long        float         double     

使用char类型时,当对象为单个字符需要用‘ ’,当对象为字符串时需要用“ ”

Eg:1.'w'        2."linqinyan"

#include <stdio.h>
//sizeof 是一个操作符,用来计算类型和变量大小的
int main()
{
    printf("%d\n", sizeof(char));
    printf("%d\n", sizeof(short));
    printf("%d\n", sizeof(int));
    printf("%d\n", sizeof(long));
    printf("%d\n", sizeof(long long));
    printf("%d\n", sizeof(float));
    printf("%d\n", sizeof(double));
    printf("%d\n", sizeof(long double));
    return 0;
}

 四、ASCII码表

五、变量类型

1.全局变量

        一个全局变量不给初始化的话,默认会被初始化为0

2.局部变量

        一个局部变量不给初始化的话,默认是随机值

#include <stdio.h>
int global = 2019;//全局变量
int main()
{
    int local = 2018;//局部变量
    //下面定义的global会不会有问题?
    int global = 2020;//局部变量
    printf("global = %d\n", global);
    return 0;
}

 extren也可以引入头文件或者其他cpp子文件里面的变量

extern int g_val;   //声明外部符号  比如头文件里面的
int main()
{
	printf("%d\n", g_val);
	return 0;
}

 对应的头文件

#define _CRT_SECURE_NO_WARNINGS 1
int g_val = 2022;//全局变量

六、C语言中的常量

1.字面常量

int main()
{
    3.14;//字面常量
    1000;//字面常量
    return 0;
}

2.const修饰的常变量

const int n = 10;
printf("n=%d\n", n);//10
n = 20;
printf("n=%d\n", n);//20
const int n = 10;//这里的n具有常属性,但是本质上是一个变量

 3.#define 定义的标识符常量

#define MAX 100
int main()
{
	//MAX = 101;//err报错
	int m = MAX;
	printf("%d\n", m);
	printf("%d\n", MAX);
	return 0;
}

4.枚举常量

枚举常量就是一一列举,是C语言提供的一种自定义类型的方法
eg:    性别:男,女,保密        三原色:red green blue

enum Sex
{
	MALE,//里面的东西从0开始排序,0 1 2 3 4 5 6.....
	FEMALE,
	SECRET
};
enum COLOR
{
	RED,
	GREEN,
	BLUE
};
int main()
{
	//MALE = 5;//err
	enum Sex s = MALE;
	printf("%d\n", MALE);    //0
	printf("%d\n", FEMALE);  //1
	printf("%d\n", SECRET);  //2
	return 0;
}

七、转义字符

假如我们要在屏幕上打印一个目录: c:\code\test.c

我们该如何写代码?是下面这样的么?

#include <stdio.h>
int main()
{
    printf("c:\code\test.c\n");
    return 0;
}

实际上程序运行的结果是这样的:

和我们所预想的不一样诶。

这里就不得不提一下转义字符了。

转义字符表

转义字符释义
\?在书写连续多个问号时使用,防止他们被解析成三字母词
\'用于表示字符常量  '
\"用于表示一个字符串内部的双引号
\\用于表示一个反斜杠,防止它被解释为一个转义序列符。
\a警告字符,蜂鸣
\b退格符
\f进纸符
\n换行
\r回车
\t水平制表符
\v垂直制表符
\dddddd表示1~3个八进制的数字。 如: \130 X
\xdddd表示2个十六进制数字。 如: \x30 0

程序验证一下:

int main()
{
	printf("c:\\test\\test.c");
	printf("abcndef");
	printf("abc\ndef");
	//三字母词: ??) 会被转变为 ]
	printf("(are you ok\?\?)");//(are you ok]
	printf("%c\n", 'a');
	printf("%c\n", '\'');
	printf("%s\n", "abc");
	printf("%s\n", "a");
	printf("%s\n", "\"");
	printf("\a\a\a\a\a");
	printf("%c\n", '\135');
	       //转换为十进制数字是64+24+5 = 93 
	printf("%c\n", '\x42');
	return 0;
}

 下面的这个程序会输出什么?

#include <stdio.h>
int main()
{
    printf("%d\n", strlen("abcdef"));                //6
    // \62被解析成一个转义字符
    printf("%d\n", strlen("c:\test\628\test.c"));    //14
    return 0;
}

 八、逗号表达式

int main()
{
	int a = 1;
	int b = 3;
	int c = 4;
	int d = (a = b - 3, b = a * 2, c = a - b);  //逗号表达式d取最后一个值
	printf("%d %d %d %d\n", a,b,c,d);
	return 0;
}

九、scanf的实质问题

int main()
{
    int iq = 0;
    while (scanf("%d", &iq) != EOF)
    {
        if (iq >= 140)
            printf("Genius\n");
    }
    return 0;
}

int main()
{
    int iq = 0;
    while(scanf("%d", &iq) == 1)
    {
        if(iq>=140)
            printf("Genius\n");
    }
    return 0;
}

十、static - 静态的

1. static可以修饰局部变量

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

	return 0;
}

2. static可以修饰全局变量

extern int g_val;
int main()
{
	printf("%d\n", g_val);
	return 0;
}

头文件

static int g_val = 2022;

3. static可以修饰函数

extern int Add(int, int);   //声明来自外部的函数
int main()
{
	int a = 0;
	int b = 0;
	scanf("%d %d", &a, &b);
	int sum = Add(a, b);
	printf("%d\n", sum);

	return 0;
}

头文件

static int Add(int x, int y)
{
	int z = x + y;
	return z;
}

十一、define 定义宏

#define 定义常量和宏
#define 定义常量
#define NUM 100
#define STR "hehe"
#define  ADD(x,y) ((x)+(y)   //define 定义宏-宏是有参数的
int main()
{
	printf("%d\n", NUM);
	printf("%s\n", STR);
	int a = 10;
	int b = 20;
	int sum = ADD(a, b);
	printf("%d\n", sum);
	return 0;
}

 十二、附加笔记

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
信息数据从传统到当代,是一直在变革当中,突如其来的互联网让传统的信息管理看到了革命性的曙光,因为传统信息管理从时效性,还是安全性,还是可操作性等各个方面来讲,遇到了互联网时代才发现能补上自古以来的短板,有效的提升管理的效率和业务水平。传统的管理模式,时间越久管理的内容越多,也需要更多的人来对数据进行整理,并且数据的汇总查询方面效率也是极其的低下,并且数据安全方面永远不会保证安全性能。结合数据内容管理的种种缺点,在互联网时代都可以得到有效的补充。结合先进的互联网技术,开发符合需求的软件,让数据内容管理不管是从录入的及时性,查看的及时性还是汇总分析的及时性,都能让正确率达到最高,管理更加的科学和便捷。本次开发的医院后台管理系统实现了病房管理、病例管理、处方管理、字典管理、公告信息管理、患者管理、药品管理、医生管理、预约医生管理、住院管理、管理员管理等功能。系统用到了关系型数据库中王者MySql作为系统的数据库,有效的对数据进行安全的存储,有效的备份,对数据可靠性方面得到了保证。并且程序也具备程序需求的所有功能,使得操作性还是安全性都大大提高,让医院后台管理系统更能从理念走到现实,确确实实的让人们提升信息处理效率。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值