初识C语言,计算机语言的基石

简介: 初识C语言,计算机语言的基石

一、什么是C语言

C语言是一门面向过程的计算机编程语言,与 C++ , Java 等面向对象的编程语言有所不同。C 语言是一门通用计算机编程语言 ,广泛应用于底层开发。 C 语言的设计目标是提供一种能以简易的方式 编译 、处理低级 存储器 、产生少量的 机器码 以及不需要任何运行环境支持便能运行的编程语言。


二、编译第一个C语言程序(建议用vs2022)

建议自己在D盘新建一个可以找到的文件夹,避免以后需要的时候找不到


右键源文件

程序基本格式

#include <stdio.h>
int main()
{
    printf("Hello\n");
    printf("Just do it!\n");
    return 0; 
}


2.1 #include <stdio.h>

每一个C语言程序代码都含有的一个头文件,其中include 称为文件包含命令,其意义是把尖括号<>或引号""内指定的文件包含到本程序中,成为本程序的一部分。被包含的文件通常是由系统提供的,其扩展名为.h,而stdio为standard input output的缩写,意为“标准输入输出” ,在程序中为固定格式,输入上去就行。


2.2 int main()

main函数是程序的入口 ,一个工程中main函数有且仅有一个,是C语言main函数的一种声明方式,在int main()下有一对{},在其中输入代码。


2.3 printf

表示要输出的结果,其结果放入("  ")中的双引号内,如果需要特别打印某一种字符类型,一般格式为(“需要打印的数据类型\n”,需要输出的变量),\n表示换行。


2.4 return 0

返回值为0,先不做深入了解,记作固定的格式。


注:程序符号尽量使用英文输入法,每一个语句后面需要打上一个英文输入下的分号  ;


三、数据类型

char              字符数据类型

short            短整型

int                整形

long              长整型

long long      更长的整形

float              单精度浮点数

double          双精度浮点数


:每一种类型的空间大小不同!

#include <stdio.h>
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; 
}

代码中%d打印的是整型,sizeof()用于打印数据类型的大小(单位为字节,一个字节是八个比特位(bit),是计算机中最小的存储单元)。

打印结果:


四、printf和库函数

4.1 printf的介绍

printf("hello\n");


printf是一个库函数,它的功能是在标准输出设备(⼀般指屏幕)上进⾏信息的打印。上⾯的代码是使⽤ printf 函数打印字符串。只要把想要打印的⼀串字符放在双引号中并传递给printf函数就可以打印。


C语言也可以打印其他类型,比如:

int n = 100;
printf("%d\n", n); //printf打印整型
printf("%c\n", 'q'); //printf打印字符
printf("%lf\n", 3.14); //printf打印双精度浮点型


这⾥的 %d , %c 等是占位符,会被后边的值替换。(这里我们后面再作解释)

库函数的时候,是需要包含头⽂件的,⽐如: printf 函数需要包含的就是 stdio.h 这个头⽂件

#include<stdio.h>


4.2 库函数

当我们描述的基础功能,它们不是业务性的代码。我们在开发的过程中每个程序员都可能用的到,为了支持可移植性和提高程序的效率,所以C语言的基础库中提供了一系列类似的库函数,方便程序员进行软件开发。

  1.  我们知道在我们学习 C 语言编程的时候,总是在一个代码编写完成之后迫不及待的想知道结果,想 把这个结果打印到我们的屏幕上看看。这个时候我们会频繁的使用一个功能:将信息按照一定的格 式打印到屏幕上(printf )。
  2. 在编程的过程中我们会频繁的做一些字符串的拷贝工作( strcpy )。
  3. 在编程是我们也计算,总是会计算 n 的 k 次方这样的运算( pow )。如果想了解更多C语言的更多库函数可以去C++官网查看:


    C++官网(英文版): cppreference.com

    C++官网(中文版): cppreference.com

    也可去: cplusplus.com - The C++ Resources Network

:但是库函数必须知道的一个秘密就是:使用库函数,必须包含 #include 对应的头文件。


五、关键字

5.1 关键字是什么

C语言提供了丰富的关键字,总共32个,这些关键字都是语言本身预先设计好的,用户自己是不能创造关键字。

auto  break  case  char  continue  default  do  double  else  enum  exterm  float  for  goto  if  int long  register  return  short  signed  sizeof  static  struct  switch  typedef  union  unsigned  void  volatile   while  const


5.2关键字的分类

1.数据类型(12个)

(1)char :字符型变量(char占一个字节,8个二进制位)


(2)short :短整型变量(short占两个字节,16位二进制位)


(3)int: 整型变量(占4个字节,32位二进制位)


(4)long :长整型变量(32位编译器时占4个字节,64位编译器时占8个字节)


(5)float:浮点型变量


(6)double :双精度变量(double占8个字节,64个二进制位)


(7)signed:有符号类型(存在正负)


(8)unsigned:无符号类型变量


(9)void 函数无返回值或无参数


(10)enum :枚举类型


(11)struct:结构体变量(在C语言中,可以使用结构体来存放一组不同类型的数据。结构体是一种集合,它里面包含了多个变量或数组,它们的类型可以相同,也可以不同,每个这样的变量或数组都称为结构体的成员)

结构体的定义形式为:

struct 结构体名{结构体所包含的变量或数组};

#include <stdio.h>
struct book
{
    char name[10];//名字
    int price;//价格
};
int main()
{
    struct book a = { "c语言基础",23};
    printf("%s,%d", a.name, a.price);//c语言基础,23
    return 0;
}


(12)union:联合数据类型


2.控制语句关键字(12个)

循环语句

(1) for: 一种循环语句


#include <stdio.h>
int main()
{
    int sum=0, i;
    for (i = 1; i < 100; i++)//for(表达式1;表达式2;表达式3)
    {
        sum += i;//循环体
    }
    printf("%d", sum);
    return 0;
}

(2) do : 循环语句的循环体(C语言中 do 是执行某代码块的意思,do 关键字不能单独使用,通常用在 do…while循环中,do…while 循环不管是真是假都要确保至少执行一次循环。)


(3). while :循环语句的循环条件(while 语句创建了一个循环,重复执行直到表达式为假或0,跳出循环。)


(4). break:跳出当前循环(C 语言中 break 语句有以下两种用法:1.终止,且程序流将继续执行紧接着循环的下一条语句。当 break 语句出现在一个循环内时,会立即跳出循环。2.它可用于终止 switch 语句中的一个 case 。)


(5). continue:结束当前循环,开始下一轮循环(continue 跳过本次循环,进入下一次。而 break 是直接跳出循环。比如 for 循环,遇到 contimue 生效后,直接重新执行 for 的表达式,也就是本循环中 continue 下面的语句就不执行,跳过循环中的一次。)


注:continue 语句只结束本次循环,而不终止整个循环的执行。而 break 语句则是结束整个循环过程,不再判断执行循环的条件是否成立。


条件语句

(1) if: 条件语句( 用于单分支选择结构)


(2).else :条件语句否定分支,与 if 连用( 在C语言中 else 是与 if 一起使用的一个关键字,表示如果满足if条件则不执行 else ,否则执行else 。)


#include <stdio.h>
int main()
{
  if (表达式1)
  {
    表达式2;
  }
  else if 
  {
    表达式3;
  }
  else
    {
        表达式4;
    }
    return 0;
}


(3).goto:无条件跳转语句(goto 语句可以使程序在没有任何条件的情况下跳转到指定的位置,所以 goto 语句又被称为是无条件跳转语句。使用 goto 语句只能 goto 到同一函数内,而不能从一个函数里 goto 到另外一个函数里。应该避免向两个方向跳转。


开关语句

(1) switch :switch 语句也是一种分支语句,常常用于多分支的情况。


(2).case:case 常量表达式只是起语句标号作用,并不是该处进行条件判断。在执行 switch 语句时,根据 switch 的表达式,找到与之匹配的 case 语句,就从此 case 子句执行下去,不在进行判断,直到碰到 break 或函数结束为止。c语言中 case 是和 switch 一起使用的,构成 switch—case 语句,进行判断选择,case 是用来表示选择结构的。


(3) default:default 的作用就是switch语句里所有的 case 都不成立时所要执行的语句;default 关键字用来标记switch语句中的默认分支。


return :返回语句;可以带参数,也可以不带参数(return 表示把程序流程从被调函数转向主调函数并把表达式的值带回主调函数,实现函数值的返回,返回时可附带一个返回值,由 return 后面的参数指定。)


3. 存储类型关键字(4个)

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


(2) extern:表示外部变量和外部函数


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


(4) static :修饰变量和函数的


//1).修饰局部变量,称为静态局部变量
#include <stdio.h>
void test()
{
    static int i = 0;//修饰局部变量
    i++;
    printf("%d ", i);//输出1 2 3 4 5 6 7 8 9 10
 
}
int main()
{
    int i;
    for (i = 1; i <= 10; i++)
    {
        test();
    }
    return 0;
}
/*说明:
——static修饰局部变量改变了变量的生命周期。
——让局部变量出了作用域依然存在,到程序结束,生命周期才结束。*/
 
//2).修饰全局变量,称为静态全局变量
//add.c
static int a = 2023;
//test.c
#include <stdio.h>
int main()
{
    printf("%d", a);//编译时,出现连接性错误
    return 0;
}
/*说明:
——一个全局变量被static修饰,全局变量只能在
本源文件内使用,不能在其他源文件内使用*/
 
//3).修饰函数,称为静态函数
//add.c
static int add(int x, int y)
{
    return x + y;
}
//test.c
#include <stdio.h>
int main()
{
    printf("%d\n", add(2, 3));
    return 0;
}
/*说明:
——一个函数被static修饰,这个函数只能在本源文件
内使用,不能在其他源文件内使用*/


4. 其它关键字(4个)

(1) const :声明只读变量


(2) sizeof:计算数据类型长度(sizeof 的作用就是返回一个对象或者类型所占的内存字节数,如果是字符串则包括‘\0’。)


(3) typedef:typedef是类型定义,这里应该理解为类型重命名


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


六、字符,字符串和转义字符

6.1 什么是字符

C 语言中的字符和字符串是常用的数据类型。字符是一个单个的字母、数字、标点符号或者其他可打印的符号,使用单引号 ’ ’ 表示,例如:‘A’、‘0’、‘+’ 等。C 语言使用 ASCII 码表示字符,每个字符都有一个整数值和一个字符表示。


6.2 转义字符

转义字符是以“\”为开头的字符,后面跟一个或几个字符,其意思是将反斜杠“\”后面的字符转变成为另外的意思,其中有一个特殊的转义字符,'\0',他是一个空字符,其ASCII值是0。


6.3 ASCII码

我们知道计算机的数据是以二进制的形式存储的,那字符在计算机中是如何存储的?

  • 0~32 控制字符/通信专用字符
  • 33~64 特殊字符、数字
  • 65~90 大写字母A-Z
  • 91~96 特殊字符
  • 97-122 小写字母a-z(小写比大写大32)
  • 123-126 特殊字符
  • 127 控制字符


6.4 什么是字符串

字符串是字符序列,是C语言中非常重要的一种数据类型。字符串中的字符使用空字符(‘\0’)作为结尾。与字符不同,字符串是必须使用双引号(" ")来表示。在C语言中,我们通常用字符指针或字符数组来表示字符串。

如下所示:

#include<stdio.h>
int main()
{
  char arr1[] = "bit";
  char arr2[] = { 'b', 'i', 't' };
  char arr3[] = { 'b', 'i','t', '\0' };
  printf("%s\n", arr1);
  printf("%s\n", arr2);
  printf("%s\n", arr3);
  return 0;
}

从这上述程序可以说明字符串的结束表示是'\0’,如果没有‘\0’,就会在内存中往后寻找直到找到‘\0’为止。


6.5 strlen的用法

strlen()函数是用来求字符串长度的,其中不包括“\0”,从第一个字符开始,直到“\0”停止,与sizeof不同。


strlen是一个库函数,自然有其头文件,它的头文件是string.h,这个头文件包括了几乎所有的有关字符和字符串的函数。

#include <stdio.h>
#include <string.h>
int main()
{
  // a b c d e f \0 一共7个元素
  char arr[] = "abcdef";
  printf("%d\n", strlen(arr));
  return 0;
}

由此可见\0的重要性


七、注释

7.1 注释的介绍

(1)什么是注释:

在日常的程序开发中,为了便于记忆和理解相关的功能代码模块,也为了方便程序员之间的交流,一般会在代码中添加辅助内容,帮助解析代码理解,添加的这些辅助内容就叫做注释。


(2)为什么要使用注释?

注释是对代码的解释说明,是写给程序员或项目经理看的,方便程序员之间交流,良好的代码注释习惯可提高程序的课读性。


(3)注释的特点

注释是不参与编译的,遇到注释,编译器会直接跳过。


7.2 注释的分类

(1)单行注释

使用斜杠 “//” 开头,后面跟着注释内容,只能在同一行,中间不能有回车。

#include <stdio.h>//头文件,主要用来保证下面的printf函数运行
 
int main()//main函数,括号内是参数,可有可无
{
    int Name;//定义用户名
    Name = 12345678;//给变量赋值
    printf("%d\n",Name);//输出用户名后换行
    return 0;//返回值
}


(2)多行注释

使用/* /进行注释,两个 中间是注释内容。

/**
 *  比较两个整数的大小,返回最大值
 *  int a 参数a
 *  int b 参数b
 *  return 返回两个整数的最大值
 */
int Max(int a,int b)
{
    if(a > b)//如果a大于b
    {
        return a;//返回a
    }
    return b;//否则返回b
}



注释和取消的快捷键为:选中后ctrl+k+c/u

总结:

这是初识C语言的基本内容啦,目的是为了快速过一遍大概的知识点,后续还会有详细讲解。

相关文章
|
13天前
|
Unix 编译器 C语言
[oeasy]python052_[系统开发语言为什么默认是c语言
本文介绍了C语言为何成为系统开发的首选语言,从其诞生背景、发展历史及特点进行阐述。C语言源于贝尔实验室,与Unix操作系统相互促进,因其简洁、高效、跨平台等特性,逐渐成为主流。文章还提及了C语言的学习资料及其对编程文化的影响。
22 5
|
26天前
|
存储 缓存 算法
在C语言中,数据结构是构建高效程序的基石。本文探讨了数组、链表、栈、队列、树和图等常见数据结构的特点、应用及实现方式
在C语言中,数据结构是构建高效程序的基石。本文探讨了数组、链表、栈、队列、树和图等常见数据结构的特点、应用及实现方式,强调了合理选择数据结构的重要性,并通过案例分析展示了其在实际项目中的应用,旨在帮助读者提升编程能力。
49 5
|
2月前
|
C语言
初识C语言:与计算机的交流之输入与输出(scanf和printf)
初识C语言:与计算机的交流之输入与输出(scanf和printf)
239 0
|
5月前
|
存储 Java C语言
【C语言入门】初识C语言:掌握编程的基石
【C语言入门】初识C语言:掌握编程的基石
72 4
【C语言入门】初识C语言:掌握编程的基石
|
6月前
|
算法 Java 程序员
面向对象编程(OOP)通过对象组合构建软件,C语言虽是过程式语言,但可通过结构体、函数指针模拟OOP特性
【6月更文挑战第15天】面向对象编程(OOP)通过对象组合构建软件,C语言虽是过程式语言,但可通过结构体、函数指针模拟OOP特性。封装可使用结构体封装数据和方法,如模拟矩形对象。继承则通过结构体嵌套实现静态继承。多态可通过函数指针模拟,但C不支持虚函数表,实现复杂。C语言能体现OOP思想,但不如C++、Java等语言原生支持。
68 7
|
6月前
|
自然语言处理 编译器 程序员
【C语言基础】:编译和链接(计算机中的翻译官)
【C语言基础】:编译和链接(计算机中的翻译官)
|
6月前
|
C语言 C++ 编译器
【C++语言】冲突-C语言:输入输出、缺省参数、引用、内联函数
【C++语言】冲突-C语言:输入输出、缺省参数、引用、内联函数
【C++语言】冲突-C语言:输入输出、缺省参数、引用、内联函数
|
5月前
|
存储 编解码 程序员
C语言17---计算机的存储规则
C语言17---计算机的存储规则
|
7月前
|
Java Unix 编译器
C语言:编程世界的基石与魅力之源
C语言是编程的基础,由丹尼斯·里奇在70年代创造,主要用于系统编程和嵌入式系统开发,以其简洁语法、高效执行和硬件访问能力著称。它影响了众多现代编程语言,并在游戏开发等领域有重要应用。通过实例展示了C语言计算两个整数和的功能,强调其在编程教育和计算机科学中的持续价值。
|
6月前
|
C语言 C++
【C++语言】冲突-C语言:命名空间
【C++语言】冲突-C语言:命名空间