初入C语言

本文介绍了C语言的基础知识,包括C语言的概念,编写第一个C程序,主函数的作用,printf函数的使用,C语言的关键字,字符和ASCII编码,字符串与的关系,转义字符的含义,语句的分类以及注释的两种形式。内容涵盖了C语言学习的核心要点。
摘要由CSDN通过智能技术生成

1、C语言概念

C语言是众多计算机语言的一种。计算机语言还包括c++/Java/Go/python等。
计算机语言是人与计算机交流的语言。

2、第一个C语言

第一个C语言是输出“hello C”,代码如下图:

#include<stdio.h>
int main()
{
printf("hello C\n");
return 0;
}

运行结果:
运行结果图

3、main函数

main函数是许多编程语言中的一个特殊函数,它是程序的入口点(entry point),也是程序执行的起始位置。当程序运行时,操作系统会首先调用main函数,并从该函数的第一行代码开始执行。main函数通常被用来定义程序的执行逻辑和流程。在一个项目中main函数有且只有一个。
在c/c++/Java中main函数定义通常是固定的,如下代码:

int main()
{

return 0;
}

在C和C++中,main函数的返回类型一般是int,表示函数执行完后返回一个整数值return 0(通常用于表示程序的状态或执行结果)。

4、printf函数

printf是一个常用的格式化输出函数,用于向标准输出设备(通常是终端)打印输出。printf函数可以根据指定的格式字符串,将数据输出为字符串或字符流。
在C语言中通常结构为以下:

printf("%d",a);//""里面如%d是格式控制符和占位符,a代表可变参数

下面是一些常见的格式控制符和占位符:

  • %d:以十进制形式输出整数。
  • %f:以浮点数形式输出实数。
  • %c:输出一个字符。
  • %s:输出一个字符串。
  • %p:以十六进制形式输出一个指针。
  • %x:以十六进制形式输出整数。

5、关键字

部分C语言关键字:

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

可参考C语言详细介绍

6、字符和ASCII编码

在键盘上可以敲出各种字符,如:a,q,@,#等,这些符号都被称为字符,C语⾔中字符是⽤单引号
括起来的,如:‘a’,‘b’,‘@’。
ASCII:我们知道在计算机中所有的数据都是以⼆进制的形式存储的,那这些字符在内存中分别以什么样的⼆进制存储的呢?如果我们每个⼈⾃⼰给这些字符中的每个字符编⼀个⼆进制序列,这个叫做编码,为了⽅便⼤家相互通信,不造成混乱,后来美国国家标准学会(ANSI)出台了⼀个标准 ASCII 编码,C语⾔中的字符就遵循了 ASCII 编码的⽅式。
ASCII详解:https://zh.cppreference.com/w/cpp/language/ascii

7、字符串和\0

字符串是由多个字符组成的串,用于表示文本数据。在许多编程语言中,字符串通常被表示为字符数组或字符串类型。

在C语言中,字符串是由字符数组表示的,以空字符\0 结尾,也被称为 null 终止字符串(null-terminated string)。 \0 是一个特殊的字符,其ASCII值为0,用于标识字符串的结束位置。

以下是一个示例(使用C语言)演示了字符串和\0 的使用:

#include <stdio.h>

int main() {
    char str1[] = "Hello";
    char str2[7] = { 'W', 'o', 'r', 'l','\0', 'd', '!' };
    char str3[10] = { 'H', 'i' };
    char str4[2] = { 'G','G' };

    printf("String 1: %s\n", str1);
    printf("String 2: %s\n", str2);
    printf("String 3: %s\n", str3);
    printf("String 4: %s\n", str4);
    return 0;
}
}

输出结果

String 1: Hello
String 2: Worl
String 3: Hi
String 4: GG烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫轩&

printf 函数会一直打印字符直到遇到 \0 字符,表示字符串的结束。
在许多编程语言中,使用字符串类型时,程序会自动在字符串的末尾添加 \0 字符。
在操作字符数组或字符串时,要确保足够的空间用于存储字符串的内容以及结尾的 \0 字符,以避免发生缓冲区溢出等错误。

  • str1的\0在结尾,正常打印。
  • str2的\0在d的前面,所以d!没有打印。
  • str3空间足够,自动在末尾添加\0。
  • str4空间只能容纳GG,无法生成\0导致出现错误。

8、转义符

转义符(Escape character)是一种特殊的字符序列,用于表示一些特殊字符或具有特殊含义的字符。它们通常以反斜杠(\)作为前缀,后跟特定字符或字符组合。
常见的转义字符包括:

\n:换行符(newline),用于在字符串中表示一个换行符,将光标移动到下一行的开头。

\t:制表符(tab),用于在字符串中表示一个水平制表符,用于在不同的列中进行对齐。

\":双引号,用于在字符串中表示一个双引号字符。

\':单引号,用于在字符串中表示一个单引号字符。

\\:反斜杠,用于在字符串中表示一个反斜杠字符。

以下是一个示例(使用C语言)演示了转义字符的使用:

#include <stdio.h>

int main() {
    printf("Hello\tWorld!\n");
    printf("She said, \"Hello!\"\n");
    printf("C:\\Program Files\\MyFile.txt\n");
    
    return 0;
}

结果:

Hello   World!
She said, "Hello!"
C:\Program Files\MyFile.txt

可以看到,\n 表示一个换行符,\t表示一个制表符,\" 用于在双引号中表示双引号字符,\\ 用于表示一个反斜杠字符。
C语⾔中像这样的转义字符还有⼀些,具体如下:
• ? :在书写连续多个问号时使⽤,防⽌他们被解析成三字⺟词,在新的编译器上没法验证了。
• ’ :⽤于表⽰字符常量’
• " :⽤于表⽰⼀个字符串内部的双引号
• \ :⽤于表⽰⼀个反斜杠,防⽌它被解释为⼀个转义序列符。
• \a :警报,这会使得终端发出警报声或出现闪烁,或者两者同时发⽣。
• \b :退格键,光标回退⼀个字符,但不删除字符。
• \f :换⻚符,光标移到下⼀⻚。在现代系统上,这已经反映不出来了,⾏为改成类似于 \v 。
• \n :换⾏符。
• \r :回⻋符,光标移到同⼀⾏的开头。
• \t :制表符,光标移到下⼀个⽔平制表位,通常是下⼀个8的倍数。
• \v :垂直分隔符,光标移到下⼀个垂直制表位,通常是下⼀⾏的同⼀列。
下⾯2种转义字符可以理解为:字符的8进制或者16进制表⽰形式
• \ddd :d d d表⽰1~3个⼋进制的数字。 如: \130 表⽰字符X
• \xdd :d d表⽰2个⼗六进制数字。 如: \x30 表⽰字符0
\0 :null 字符,代表没有内容, \0 就是 \ddd 这类转义字符的⼀种,⽤于字符串的结束标志,其ASCII码值是0.

9、语句和语句分类

C语⾔的代码是由⼀条⼀条的语句构成的,C语⾔中的语句可为以下五类:
• 空语句
• 表达式语句
• 函数调⽤语句
• 复合语句
• 控制语句

9、1空语句

空语句是最简单的,⼀个分号就是⼀条语句,是空语句。

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

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

9、2表达式语句

表达式语句就是在表达式的后边加上分号。如下所⽰:

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

9、3函数调用语句

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

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

9、4复合语句

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

#include <stdio.h>
void print(int arr[], int sz) //函数的⼤括号中的代码也构成复合语句
{
 int i = 0;
 for(i=0; i<sz; i++)
 {
 printf("%d ", arr[i]);
 }
}
int main()
{
 int i = 0;
 int arr[10] = {0};
 for(i=0; i<10; i++) //for循环的循环体的⼤括号中的就是复合语句
 {
 arr[i] = 10-i;
 printf("%d\n", arr[i]);
 }
 return 0;
}

9、5控制语句

控制语句⽤于控制程序的执⾏流程,以实现程序的各种结构⽅式(C语⾔⽀持三种结构:顺序结构、选
择结构、循环结构),它们由特定的语句定义符组成,C语⾔有九种控制语句。
可分成以下三类:
1. 条件判断语句也叫分⽀语句: if语句、switch语句;
2. 循环执⾏语句: do while语句、while语句、for语句;
3. 转向语句: break语句、goto语句、continue语句、return语句。

10、注释

注释是对代码的说明,编译器会忽略注释,也就是说,注释对实际代码没有影响。注释是给程序员⾃⼰,或者其他程序员看的。
C 语⾔的注释有两种表⽰⽅法。

  • /**/的形式
  • // 的形式
    不管是哪⼀种注释,都不能放在双引号⾥⾯。
printf("/*这不是注释*/");
printf("//这也不是注释");

10、1 /**/的形式

将注释放在 // 之间,内部可以分⾏。

/*注释*/
/*
注释
*/

在语句内也可以用注释

int fopen(char* s /* file name */, int mode);

上⾯⽰例中, /* file name */ ⽤来对函数参数进⾏说明,跟在它后⾯的代码依然会有效执⾏。这种注释⼀定不能忘记写结束符号 */ ,否则很容易导致错误。

printf("hello 1")/*注释1
printf("hello 2")
printf("hello 3")/*注释2*/
printf("hello 4")

遇到/*注释开始,遇到*/注释结束,第一行注释一没有*/遇到第三行*/才结束注释,第二行和第三行代码变为注释。

编译时,注释会被替换成⼀个空格,所以 min/* 这⾥是注释*/Value 会变成 min Value ,⽽不是 minValue

10、2// 的形式

将注释放在双斜杠 // 后⾯,从双斜杠到⾏尾都属于注释。这种注释只能是单⾏,可以放在⾏⾸,也可以放在⼀⾏语句的结尾。这是 C99 标准新增的语法。

int a=0;//这是注释
//int a=0;这也是注释
printf("%d\n",a);
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值