C语言入门总结

目录

一.C语言编译链接过程

 二.数据类型

1.基本数据类型:

三.标识符、变量、常量

1.在C语言中,为变量、函数和结构体等起的名称为标识符。

2.标识符命名规则:

3.变量:是以某标识符为名字,其数值可读、可写。

4.常量:

四.输出和输入函数的使用

五.转义字符及其含义​编辑

六.顺序、选择、循环语句

顺序语句:按照语句出现的先后顺序依次执行。

选择语句:根据条件判断是否执行相关语句。

循环语句:当条件成立时,重复执行某些语句。

switch分支语句:

七.数组

八.函数

定义函数的语法:   函数返回类型   函数名   (形参列表)   {函数体}

C语言不允许函数的嵌套定义,即在一个函数中定义另一个函数。

九.可见性(作用域)和生存期

十.运算符

十一.指针

十二.结构体

十三.标准文件与缓冲区

C语言提供的标准文件:

缓冲区:

十四.关键字详解

sizeof:

typedef:

extern:

static:

const:


一.C语言编译链接过程

 二.数据类型

1.基本数据类型:

a.整型: char(1字节) short(2字节) int(4字节) long(4字节) longlong(8字节

b.浮点型: float(4字节) double(8字节

c.字符型: char(1字节

d.布尔类型:bool:   false(0)   true(1)   

2^10==> 1KB  2^20==> 1MB   2^30==> 1GB   2^40==>1TB   2^50==> 1PB

三.标识符、变量、常量

1.在C语言中,为变量、函数和结构体等起的名称为标识符。

2.标识符命名规则:

a.下划线“_”,英文字母(A-Z,a-z)和数字(0-9)构成,首字母不能为数字

b.命名最好见名知意。

c.不能把关键字作为标识符。

d.严格区分大小写 。

关键字不能作为标识符使用:(32个关键字)

3.变量:是以某标识符为名字,其数值可读、可写。

变量的作用域:每一个变量名都有一个作用域问题,即变量名在什么范围有效。

全局变量:在函数外定义的变量。

局部变量:在函数内定义的变量。

程序块中的变量:在函数内部,在复合语句中定义变量。

::   作用域解析符(c++)

示例:

#include<stdio.h>
int get_sum = 100;     //全局变量
int main() {
    float ft = 12.23f; //局部变量
    int a = 10;
    int get_sum = 0;   //全局变量和局部变量
    a = get_sum;
    return 0;
}

4.常量:

用const关键字修饰的变量,称为常变量。

枚举常量

字面常量

用#define 定义的宏常量:可以用#define 定义一个标识符来表示一个常量。其特点是:定义的标识符不占内存,只是一个临时的符号,预编译后这个符号就不存在了。

字符常量和字符串常量

 a.单引号是字符的定界符   ‘a'

 b.双引号是字符串的定界符  "a"    ————  97   \0 

重要的ASCII值: A  ——> 65         a——> 97          0——> 48           空格——> 32

四.输出和输入函数的使用

    printf函数 称为格式输出函数,一般格式为:  printf("格式控制字符串",输出列表);

格式控制串可由格式字符串和非格式字符串两种组成。

a.格式字符串是以%开头的字符串,%后跟有各种格式字符,以说明输出数据的类型、形式、长度、小数位数等。

如: "%d" 表示按十进制整型输出     "%o" 表示按八进制整型输出     "%x"表示按十六进制整形输出

         "%ld" 表示按十进制长整型输出    "%c"表示按字符型输出           "%f"表示按浮点数输出

b.非格式字符串在输出时原样打印,在显示中起提示作用。

     scanf函数 称为格式输入函数, 即按用户指定的格式从键盘上把数据输入到指定变量之中。

一般格式为:scanf("格式控制字符串",地址列表);     地址是由地址运算符”&“后跟变量名组成的。

#include<stdio.h>
#include<math.h>
#define __CRT_SECURE_NO_WARNINGS 1
int main()
{
	float a = 0, b = 0, c = 0, p = 0, s = 0;
	scanf_s("%f %f %f", &a, &b, &c);
	p = (a + b + c) / 2;
	s = sqrt(p * (p - a) * (p - b) * (p - c));
	printf("s = %f \n", s);

	return 0;
}

五.转义字符及其含义

六.顺序、选择、循环语句

顺序语句:按照语句出现的先后顺序依次执行。

选择语句:根据条件判断是否执行相关语句。

int main()
{

    if(条件语句)
    {

        语句1;
    }
    else
    {
        语句2;
    }


    return 0;
}
int main() 
{
	int a = 0, b = 0, c = 0;
	int max = 0;
	scanf_s("%d %d %d", &a, &b, &c);
	if (a > b && b > c)
	{
		printf("max=%d \n", a);
	}
	else if(b > a && a > c)
	{
		printf("max=%d \n", b);
	}
	else if(c > a && a > b)
	{
		printf("max=%d \n", c);
	}
	
	return 0;
}

循环语句:当条件成立时,重复执行某些语句。

while(条件语句){   }

do{  } while(条件语句);

for (表达式1; 表达式2; 表达式3)

switch分支语句:

int main()
{
	char grade = '\0';
	printf("input grade(Aa Bb Cc Dd Ee Ff) \n");
	grade = getchar();
	switch (grade)
	{
	case 'A': 
	case 'a':
		printf("A(90--100) \n");
		break;
	case 'B':
	case 'b':
		printf("B(80--89)  \n");
		break;
	case 'C': 
	case'c':
		printf("C(70--79)  \n");
		break;
	case 'D':
	case'd':
		printf("D(60--69)  \n"); 
		break;
	case 'E':
	case'e':
		printf("E(<60)  \n");
		break;
	default:
		printf("不及格 \n");
		break;
	}

		return 0;

}

七.数组

数组是包含给定数据类型的一组数据,即一组相同数据类型元素的集合。

其语法如下: <类型> 数组名 [ <元素数量> ] ;访问数组从下标0开始。

八.函数

在结构化程序设计中,函数是将任务进行模块划分的基本单位。通过函数,可以把一个复杂的任务分解成若干个易于解决的小任务。充分体现结构化程序设计由粗到细,逐步细化的思想。一个大的程序一般应分为若干程序模块,每个模块实行一个特定的功能,这些模块称为子程序,在C语言中子程序用函数实现

定义函数的语法:   函数返回类型   函数名   (形参列表)   {函数体}

常见函数的库函数:

菜鸟教程 - 学的不仅是技术,更是梦想!

C语言不允许函数的嵌套定义,即在一个函数中定义另一个函数。

1.形式参数(形参):只能等到函数被调用时接收传递进来的数据,函数执行完毕形参自动释放。

2.实际参数(实参):调用函数时给出的参数包含了实实在在的数据。

九.可见性(作用域)和生存期

作用域(可见性)指标识符能够被使用的范围;只有在作用域内标识符才可以被使用。

此阶段针对编译和链接过程。

1.函数中定义的标识符,包括形参和函数体中定义的局部变量,作用域都在该函数内,也称作函数域。

2.文件作用域也称全局作用域。定义在所有的函数之外的标识符,具有文件作用域,作用域为从定义处到整个源文件结束。全局变量和函数都具有文件作用域。

生存期也叫生命期,此阶段针对的是程序的执行过程。

生命期指标识符从程序开始运行时被创建,具有存储空间,到程序运行结束时消亡,释放存储空间的时间段。

1.局部变量的生存期:函数被调用,分配存储空间,到函数执行结束,存储空间释放。存储.stack区(栈区)。

2.全局变量的生存期:从程序运行前开始,到执行后结束,存储在.data区(数据区)。

3.动态生命期:标识符由特定的函数调用或运算来创建和释放,如调用malloc()为变量分配存储空间,变量的生命期开始,而调用free()释放空间或程序结束时,变量生命期结束。具有动态生命期的变量存储在.heap区(堆区)。

十.运算符

操作数:是程序操纵的数据实体,该数据可以是数值、逻辑值或其他类型。该操作数可以是常量也可以为变量。

运算符:是可以对数据进行相应操作的符号。如对数据求和操作,用加法运算符‘+’,求积操作使用乘法运算符‘*’等。

根据运算符可操作的操作数的个数,可把运算符分为一元运算符(单目运算符)、二元运算符(双目运算符)和多元运算符(C语言只有一个三目运算符(?:))。

左值和右值:按字面意思通俗的说。以赋值符号=为界,=左边的就是左值,=右边的就是右值。

前置++与后置++:

十一.指针

内存(在程序中称为主存 DRAM)是计算机中最重要的部件之一,它是外存(硬盘)与CPU沟通的桥梁。

计算机中所有的程序的运行都是在内存中进行,为了有效使用内存,就把内存以8位二进制(bit)划分为存储单元(1字节)。为了有效的访问到内存的每个单元,就给内存存储单元进行了编号,这些编号被称为内存存储单元的地址。

int main()

{
     int a =10 , b =20, c =0;
     

        c = a * b ; //乘法
        
        int *p; //声明
        
        p = &a;

        int *p = &a;

        *p;   //取值

}

十二.结构体

程序开发人员可以使用结构体来封装一些属性,设计出新的类型,在C语言中称为结构体类型。

结构体是一种数据类型。

指针的两种访问形式:

(*sp).s_id            sp->s_id

十三.标准文件与缓冲区

C语言提供的标准文件:

通常把显示器称为标准输出文件,printf就是向这个文件输出数据;putchar。

通常把键盘称为标准输入文件,scanf就是从这个文件读取数据;getchar。

缓冲区:

指在程序执行时,所提供的一块存储空间(在内存中),可用来暂时存放做准备执行的数据。它的设置是为了提高存取效率,因为内存的存取速度比磁盘驱动快得多。

十四.关键字详解

sizeof:

计算类型大小或变量的大小,也就是字节个数。unsigned int(无符号整型);

typedef:

在C语言允许为一个数据类型起一个新的别名。

extern:

用在全局变量或函数的声明前,用来说明“此变量/函数实在别处定义的,要在此处引用”。

定义和声明重要区别定义创建了对象并给这个对象一块内存,而声明的时候是没有分配内存空间

static:

C语言中static关键字修饰变量和函数。(使可见性只在本文件内有效)

const:

无论是全局常变量还是局部常变量都必须初始化赋值

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值