首页 > 其他分享 >C语言常见的概念

C语言常见的概念

时间:2025-01-15 20:28:40浏览次数:3  
标签:语句 字符 打印 int 常见 C语言 概念 printf main

1. C语⾔是什么?

 c语言是一种通用的、高级的编程语言。 我们可以联想一下,⼈和⼈交流使⽤的是⾃然语⾔,如:汉语、英语、⽇语 。那⼈和计算机使⽤计算机语⾔。 ⽬前已知已经有上千种计算机语⾔,⼈们是通过计算机语⾔写的程序,给计算机下达指令,让计算机 ⼯作的。C语⾔就是众多计算机语⾔中的⼀种,同时C++/Java/Go/Python也是计算机语⾔。

2.源⽂件、头⽂件介绍

C语⾔把 .c 为后缀的⽂件称为源⽂件,把 .h 为后缀的⽂件称为头⽂件。

cb9e15761c494734a07ab05f5e28fcbf.png

3. 第⼀个C语⾔程序

#include <stdio.h>
int main(){
    printf("你好,c语言");
    return 0;
}

4. main函数

main 函数也被叫做:主函数。 main 函数开始执⾏的, main 前⾯的 int 表⽰ 型的值。所以在 main 函数的最后写 main 函数是程序的⼊⼝, main 函数执⾏结束的时候返回⼀个整型类 return 0; 正好前后呼应。

• main函数是程序的⼊⼝

• main函数有且仅有⼀个

• 即使⼀个项⽬中有多个.c⽂件,但是只能有⼀个main函数(因为程序的⼊⼝只能有⼀个)

5. printf和库函数

上面有句代码如下:

printf("你好,c语言");

这句代码中就运用了printf函数,实现了信息打印在屏幕上。printf 是⼀个库函数,它的功能是在标准输出设备(⼀般指屏 幕)上进⾏信息的打印。上⾯的代码是使⽤ printf 函数打印字符串。只要把想要打印的⼀串字符放 在双引号中并传递给printf函数就可以打印。 printf函数也可以⽤来打印其他类型的数据,⽐如:

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

上述代码中的%d,%c等为占位符。

同时我们在使⽤库函数的时候,是需要包含头⽂件的,⽐如: stdio.h 这个头⽂件,具体的⽅法就是:

#include <stdio.h>

库函数是什么?

库函数是C语言等编程语言中,由编译器或操作系统提供的一系列预先编写好的函数。
这些函数可以被程序员直接调用,而不用自己重新编写代码实现相关功能,能够节省时间并提高效率。⼀个系列的库函数⼀般会声明在同⼀个头⽂件中,所以库函数的使⽤,要包含对应的头⽂件。

想要了解的可参考链接:https://cplusplus.com/reference/clibrary/

6. 关键字介绍

C语⾔中有⼀批保留的名字的符号,⽐如:int 、if 、 return ,这些符号被称为保留字或者关键字

• 关键字都有特殊的意义,是保留给C语⾔使⽤的

• 程序员⾃⼰在创建标识符的时候是不能和关键字重复的

• 关键字也是不能⾃⼰创建的。

c语言的32个关键字:

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

想要了解的关键字的可参考链接:https://zh.cppreference.com/w/c/keyword

7. 字符和ASCII编码 

在键盘上可以敲出各种字符,如:a,b,@,#等,这些符号都被称为字符,C语⾔中字符是⽤单引号 括起来的,如:'a','b','@'。

ASCII(美国信息交换标准代码)是一种字符编码标准。 
它主要用于将英文字母、数字、标点符号等字符和二进制数相互转换。ASCII编码用7位二进制数来表示一个字符,总共可以表示128个字符。例如,字符‘A’对应的ASCII码是十进制的65,换算成二进制是01000001。

ASCII 码表

8175851e445c4a659441534648cd56fb.png

 参考链接:https://zh.cppreference.com/w/cpp/language/ascii

比较好掌握的特殊数据有:

• 字符A~Z的ASCII码值从65~90

• 字符a~z的ASCII码值从97~122

• 对应的⼤⼩写字符(a和A)的ASCII码值的差值是32

• 数字字符0~9的ASCII码值从48~57

• 换⾏ \n 的ASCII值是:10

• 在这些字符中ASCII码值从0~31这32个字符是不可打印字符,⽆法打印在屏幕上观察

例子:

1270f103d9c341b69ccd801988e98744.png

可打印字符:

835744625f804bf69ec58a08112641b8.png

8. 字符串和\0

使⽤双引号括起来的⼀串字符就被称为字符串,如:"abcdef",就是⼀个 字符串。

打印字符串时,用%s。

例如:

174770ad4d3a49b4a0971332e1140bad.png

C语⾔字符串中⼀个特殊的知识,就是在字符串的末尾隐藏放着⼀个 的结束标志。 \0 字符,这个 \0 字符是字符串。如图所示:

2f41f82c7e4d4e559c552af6ae286ff9.png

对于字符串“abcdef”,我们看到了是六个字符,实际上后面还跟着一个\0的转义字符,\0是字符串结束的标志。所以我们在使⽤库函数 strlen() 计算字符串⻓度的时候,遇到 printf() 打印字符串或者 \0 的时候就⾃动停⽌了。

下面代码验证\0的作用:

#include <stdio.h>
int main() {
	char arr1[] = { 'a','b','c' };//arr1数组存放三个字符
	char arr2[] = "abc" ;//arr2数组存放字符串
	printf("%s\n", arr1);
	printf("%s\n", arr2);
	return 0;
}

调试的结果:

fc5aa45837f34818b15f82f97135bdb2.png

运行结果:

5eff8528678c47dc9f71d022a2a40c1f.png

 我们可以看到, arr1 字符数组在打印的时候,打印了 a 、 b 、 c 后还打印了⼀些随机值,这就是 因为 arr1 在末尾的地⽅没有 \0 字符作为结束标志,在打印的时候没有停⽌。 但是 arr2 的打印就是完全正常的,就是因为 arr2 数组是使⽤字符串常量初始化的,数组中有 作为技术标志,打印可以正常停⽌。 如果我们在arr1数组中单独放⼀个'\0'字符会怎么样呢?

88c468ab003447e298865c63471226a6.png

看到三次打印的结果是⼀样的了,都是打印到 \0 的时候就停⽌了,那从上述的例⼦我们确实能够观 察到 \0 的作⽤和重要性的

9. 转义字符

转义字符是一种特殊的字符序列。它以反斜杠“\”开头,后面跟一个或几个字符,用来表示那些在代码中有特殊用途或者无法直接表示的字符。

C语⾔中的转义字符,具体如下:

• \? :在书写连续多个问号时使⽤,防⽌他们被解析成三字⺟词,在新的编译器上没法验证了。

• \' :⽤于表⽰字符常量'

• \" :⽤于表⽰⼀个字符串内部的双引号

• \\ :⽤于表⽰⼀个反斜杠,防⽌它被解释为⼀个转义序列符。

• \a :警报,这会使得终端发出警报声或出现闪烁,或者两者同时发⽣。

• \b :退格键,光标回退⼀个字符,但不删除字符。

• \f :换⻚符,光标移到下⼀⻚。在现代系统上,这已经反映不出来了,⾏为改成类似于

• \n :换⾏符。

• \r :回⻋符,光标移到同⼀⾏的开头。

• \t :制表符,光标移到下⼀个⽔平制表位,通常是下⼀个4/8的倍数。

• \v :垂直分隔符,光标移到下⼀个垂直制表位,通常是下⼀⾏的同⼀列。

下⾯2种转义字符可以理解为:字符的8进制或者16进制表⽰形式

• \ddd :ddd表⽰1~3个⼋进制的数字。 如: \130 表⽰字符X

• \xdd :dd表⽰2个⼗六进制数字。 如: \x30 表⽰字符0

\ 0 :null字符,代表没有内容, \ 0 就是 \v 。 \ddd 这类转义字符的⼀种,⽤于字符串的结束标志,其 ASCII码值是0.

相关代码:

0b7208eacd6e47a9bdbdcbb76ca0d5a5.png

转义字符参考链接:https://zh.cppreference.com/w/c/language/escape

 11. 语句和语句分类 

C语⾔的代码是由⼀条⼀条的语句构成的,C语⾔中的语句可为以下五类:

• 空语句

• 表达式语句

• 函数调⽤语句

• 复合语句

• 控制语句 

空语句:一个分号就是一个语句,也就是空语句。空语句,⼀般出现的地⽅是:这⾥需要⼀条语句,但是这个语句不需要做任何事,就可以写⼀个空语 句。

 #include <stdio.h>
 int main()
 {
    ;//空语句
   return 0;
 }

表达式语句

表达式语句就是在表达式的后边加上分号。

 #include <stdio.h>
 int main()
 {
     int a = 2;
     int b = 1;
     c = a + 5; //表达式语句
     return 0;
 }

函数调用语句

函数调⽤的时候,也会加上分号,就是函数调⽤语句。

#include <stdio.h>
int Add(int x, int y)
{
     return x+y;
 }
int main(){
    printf("hehe\n");//函数调⽤语句
    int ret = Add(2, 3);//函数调⽤语句  
    return 0
}

复合语句:

复合语句其实就是前⾯讲过的代码块,成对括号中的代码就构成⼀个代码块,也被称为复合语句。


#include <stdio.h>
int main() {
    int a = 10;
    int b = 20;
    {
        // 复合语句,用花括号括起来的一段代码块
        int sum = a + b;
        printf("两数之和为:%d\n", sum);
    }
    return 0;
}

控制语句

控制语句⽤于控制程序的执⾏流程,以实现程序的各种结构⽅式(C语⾔⽀持三种结构:顺序结构、选 择结构、循环结构),它们由特定的语句定义符组成,C语⾔有九种控制语句。

可分成以下三类:

1. 条件判断语句也叫分⽀语句:if语句、switch语句;

2. 循环执⾏语句:dowhile语句、while语句、for语句;

3. 转向语句:break语句、goto语句、continue语句、return语句。

 

 

标签:语句,字符,打印,int,常见,C语言,概念,printf,main
From: https://blog.csdn.net/2402_86400467/article/details/145073250

相关文章

  • 数据结构学习记录-数据结构概念
    1数据结构:数据结构是计算机存储,管理数据的方式。数据必须依据某种逻辑联系组织在一起存储在计算机内数据结构研究的就是这种数据的存储结构和数据的逻辑结构。1.1数据的逻辑结构:逻辑结构指的是数据本身之间的关系集合:数据元素除了属于同一个集合外,没有其他联系;线性关......
  • 【C语言分支和循环练习题】
    分支和循环练习1.打印1-100之间的所有素数2.随机数的生成:生成100-200之间的随机数1.打印1-100之间的所有素数#include<stdio.h>#include<math.h>intmain(){ inti=0; for(i=101;i<=200;i+=2) { intflag=1;//假设i是素数 intj=0; for(......
  • C语言输入输出
    一、语句以分号作为语句结束标志(一)分类 1.控制语句  2.函数调用语句  3.表达式语句 4.空语句  5.复合语句 (二)输入输出 输入--->计算机--->输出         [内存] c语言中用到的输入输出的功能,并不是c语言本身的一部分。而是......
  • 洛谷 P8469 [Aya Round 1 D] 文文的数学游戏 C语言
    题目:P8469[AyaRound1D]文文的数学游戏-洛谷|计算机科学教育新生态题目背景在解决了上一题之后,琪露诺觉得自己仿佛就是天才。于是,射命丸文又给了她一道简单的数学题。题目描述给定长度为 n 的整数序列 a,你需要构造一个长度为 n 的整数序列 b 满足对于所有......
  • 【转】[Java] 常见的文件命名规则
    来自:kimi.ai在Java项目中,遵循良好的文件命名规则对于代码的可读性、可维护性和团队协作至关重要。以下是一些常见的文件命名规则和最佳实践:1.包名(PackageNames)使用小写字母:包名应全部使用小写字母,避免使用下划线或中划线。反映项目结构:包名应反映项目的模块和层次结构,通常......
  • AI应用开发先了解这些概念:智能体、LLM、RAG、提示词工程
    什么是智能体(Agent)一种基于LLM(LargeLanguageModel)的能够感知环境、做出决策并执行行动以实现特定目标的自主系统。与传统人工智能不同,AlAgent模仿人类行为模式解决问题,通过独立思考和调用工具逐步完成给定目标,实现自主操作。通用智能体平台以Agent为核心技术驱动,......
  • 【C语言】_字符串函数strcpy
    目录1. 函数声明及功能2.使用示例3.注意事项4. 模拟实现4.1第一版:基本功能+判空+const修饰4.2第二版:优化对于'\0'的单独拷贝4.3第三版:仿strcpy的char*返回值1. 函数声明及功能char*strcpy(char*destination,constchar*source); strcpy功能:字......
  • 分类统计字符个数(PTA)C语言
    本题要求实现一个函数,统计给定字符串中英文字母、空格或回车、数字字符和其他字符的个数。函数接口定义:voidStringCount(chars[]);其中chars[]是用户传入的字符串。函数StringCount须在一行内按照letter=英文字母个数,blank=空格或回车个数,digit=数字字符......
  • C语言代码题:有评委对选手进行打分,分数为整数,接收数据为-1的时候结束,去掉一个最高分,去
    思路:    1、定义数组进行接收分数    2、用循环求最高分,最低分,总值    3、求平均分,输出#include<stdio.h>intmain(void){inti=0,val=0;inta[100]={0};doublemin=0,max=0,num=0,avg=0;//给数组赋值......
  • 【深度学习】核心概念-数据驱动(Data-Driven)
    数据驱动(Data-Driven)数据驱动是一种以数据为核心的决策和开发方式,通过对数据的收集、分析和利用,来指导业务、产品设计以及技术实现。数据驱动强调以客观的数据和事实作为决策依据,而非依赖主观判断或经验。数据驱动的核心思想数据为中心:将数据作为主要资产,通过数据来洞察问......