c语言基础知识

本文是一篇C语言新手的博客,作者介绍了自己对计算机的兴趣背景,然后详细讲解了C语言的基本概念,包括第一个程序、函数、关键字、字符和ASCII编码、字符串处理、转义字符、strlen函数以及语句分类。此外,还提到了注释的用法和不同类型的注释。
摘要由CSDN通过智能技术生成

一.自我介绍

此为本人的第一篇博客,首先做个简单的自我介绍:2023准大一新生,我从小便对计算机有着浓厚的兴趣,条件有限,直至今日才真正接触电脑接触计算机这门学科专业。 于我而言,一行行的代码并不枯燥,一点一点的积累,对代码语句结构的一次次深入剖析,总结和记忆,使其转化为自己能掌握的东西,收入自己的代码库中,这一过程使我体会到学习和钻研的乐趣,就如同高中时期对于新知识的获取一样,养成良好的学习习惯和方法,逐步积累取得成绩,就如同拿到心仪的offer一样。在接下来的这段时间我将记录每天的学习心得与总结
————————————————
版权声明:本文为CSDN博主Iris…的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/2301_79176091/article/details/131839339

二.c语言常见概念

1.第一个c语言程序

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

快捷运算:CTRL+f5

2.函数


main函数位程序入口也将其称为主函数,且有且仅有一个,即使一个项目中有多个.c文件也只能有一个main函数

printf为一个库函数,使用其打印字符串,也可用于打印其他类型的数据,使用该函数时需要头文件,例如

#include <stdio.h>

print 打印 format格式
拓展延伸:每个函数都有其对应的功能,C语言来提供标准和需要什么函数以及函数的功能,之后由编译器的厂商根据该标准来实现函数即该函数是由编译器厂商提供的,众多厂商提供的函数集成在一起成为标准库,这些函数就是库函数

3.关键字:
C语⾔中有⼀批保留的名字的符号,⽐如: int 、 if 、 return ,这些符号被称为保留字或者关键
字。
• 关键字都有特殊的意义,是保留给C语⾔使⽤的
• 程序员⾃⼰在创建标识符的时候是不能和关键字重复的
• 关键字也是不能⾃⼰创建的。
C语⾔的32个关键字如下:
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

4.字符和ASCII编码


• 字符AZ的ASCII码值从6590
• 字符az的ASCII码值从97122
• 对应的⼤⼩写字符(a和A)的ASCII码值的差值是32
• 数字字符09的ASCII码值从4857
• 换⾏ \n 的ASCII值是:10
• 在这些字符中ASCII码值从0~31 这32个字符是不可打印字符,⽆法打印在屏幕上观察,单个字符的打印可以使⽤%c来指定格式:(表示单个字符要用单引号来表示例如:‘Q’;注意一个汉字为两个字符’)

#include <stdio.h>
int main()
{
    printf("%c\n",'Q');
    printf("%c\n",81);//81是字符Q的ASCII码值,也是可以正常打印的
    return 0;
}

5.字符串和\0:

“abc”双引号表示的叫字符串,“c”也叫字符串,字符串和字符的区分是看双引号还是单引号,“”叫空字符号
字符串的打印格式可以使⽤ %s 来指定

#include <stdio.h>
int main()
{
      printf("haha\n");
      printf("%s\n","haha");//两种写法都可以
      return 0;
}

\0是字符串的结束标志,对于字符串"abcdef",我们实际上看到了6个字符:a,b,c,d,e,f,但是实际上在末尾还隐藏⼀个 \0 的转义字符, \0 是字符串的结束标志。所以我们在使⽤库函数 printf() 打印字符串或strlen() 计算字符串⻓度的时候,遇到 \0 的时候就⾃动停⽌了。
字符数组,用来存放字符
数组即为一组数据,‘a’,'b’叫做字符,char表示字符

请添加图片描述

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

这样的代码对应的是这样的内存布局请添加图片描述

6.转义字符


\0:转义字符
\n:转义字符
转义字符:转变了意思的字符请添加图片描述

\n 是⼀个转义字符表⽰换⾏的意思,我们可以简单的理解为 \ 让 n 的意思发⽣了转变, n 本来是⼀个普通的字符,被 \ 转义为换⾏的意思。这些ASCII码值是可以⾃⼰写代码验证的,⼤家也可以⾃⼰验证。
关于转义字符我们⾸先要了解,然后要能在字符串中识别出来。

C语⾔中像这样的转义字符还有⼀些,具体如下:

• ? :在书写连续多个问号时使⽤,防⽌他们被解析成三字⺟词,在新的编译器上没法验证了。
注意三字母词:请添加图片描述

• ’ :⽤于表⽰字符常量 ’
请添加图片描述

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

请添加图片描述

• \ :⽤于表⽰⼀个反斜杠,防⽌它被解释为⼀个转义序列符。
无法正常打印路径
请添加图片描述
使用\转义字符后请添加图片描述• \a :警报,这会使得终端发出警报声或出现闪烁,或者两者同时发⽣。

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

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

• \n :换⾏符。

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

• \t :制表符,光标移到下⼀个⽔平制表位,通常
是下⼀个8的倍数。
请添加图片描述

• \v :垂直分隔符,光标移到下⼀个垂直制表位,通常是下⼀⾏的同⼀列。
下⾯2种转义字符可以理解为:字符的8进制或者16进制表⽰形式

• \ddd :d d d表⽰1~3个⼋进制的数字。 如: \130 表⽰字符,注意,它表示单个字符

请添加图片描述

请添加图片描述

请添加图片描述

• \xdd(注意她表示单个字符) :d d表⽰2个⼗六进制数字。 如: \x30 表⽰字符0请添加图片描述

请添加图片描述

请添加图片描述

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

#include <stdio.h>
int main()
{
 printf("%c\n", '\'');
 printf("%s\n", "\"");
 printf("c:\\test\\code\\test.c\n");
 printf("\a");
 printf("%c\n", '\130'); //130是8进制,转换成10进制是88,以88作为ASCII码值的字符是
 printf("%c\n", '\x30'); //x30中的30是16进制,转换成10进制是48,以48作为ASCII码值的
 
 return 0;
}

7.strlen (string length )函数求字符串长度:


%d:输出十进制整型数据的是实际长度

#include <string.h>
int main()
{
     int len =strlen("abc");
     printf("%d\n",len)
     return 0;

}

8.语句和语句分类


c语言的代码是由一条条的语句构成的,分为以下五类
简单来说分号为一个语句
• 空语句
• 表达式语句
• 函数调⽤语句
• 复合语句
• 控制语句

8.1空语句


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

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

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


8.2表达式语句


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

#include <stdio.h>
int main()
{
 int a = 20;
 int b = 0;
 b = 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;
}
8.3复合语句


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

#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;
}
8.4控制语句


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

  1. 条件判断语句也叫分⽀语句:if语句、switch语句;
    比特就业课 比特就业课主页:https://m.cctalk.com/inst/s9yewhfr 比特就业课-专注IT大学生就业的精品课程
  2. 循环执⾏语句:do while语句、while语句、for语句;
  3. 转向语句:break语句、goto语句、continue语句、return语句。

9.注意注释的用法以及注释会被替换

关于注释:

注释是对代码的说明,编译器会忽略注释,也就是说,注释对实际代码没有影响。
注释是给程序员⾃⼰,或者其他程序员看的。
好的注释可以帮我们更好的理解代码,但是也不要过度注释,不要写没必要的注释。
当然不写注释可能会让后期阅读代码的⼈抓狂。
写注释⼀定程度上反应了程序作者的素质,建议⼤家写必要的注释,在未来找⼯作的时候,写代码时
留下必要的注释也会给⾯试官留下更好的印象。

注释的2种形式

C 语⾔的注释有两种表⽰⽅法。


9.1 /**/ 的形式


第⼀种⽅法是将注释放在 // 之间,内部可以分⾏。

/* 注释 */
/*
 这是⼀⾏注释
*/

这种注释可以插在⾏内,

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

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

```c
printf("a "); /* 注释⼀
printf("b ");
```printf("c "); /* 注释⼆ */
printf("d ");

上⾯⽰例的原意是,第⼀⾏和第三⾏代码的尾部,有两个注释。
但是,第⼀⾏注释忘记写结束符号,导致注释⼀延续到第三⾏结束。
/**/ 的这个注释也不⽀持嵌套注释, /* 开始注释后,遇到第⼀个 */ 就认为注释结束了。

/*
printf("a ");
printf("b ");
printf("c "); /* 注释⼆ */
printf("d ");
*/
9.2//形式

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

// 这是⼀⾏注释
int x = 1; // 这也是注释

不管是哪⼀种注释,都不能放在双引号⾥⾯

双引号⾥⾯的注释符号,会成为字符串的⼀部分,解释为普通符号,失去注释作⽤。

 printf("// hello /* world */ ");

上⾯⽰例中,双引号⾥⾯的注释符号,都会被视为普通字符,没有注释作⽤。

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

  • 18
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值