编程学习(c规划)1{24_3_28}

C语言历史

1969年:B语言被发明

1972年:在B语言基础上设计了C语言

1973年:Unix系统使用C语言重写

1988年:C语言标准化,标志着C语言开始稳定和规范化

编译和链接

C语言代码是放在.c为后缀的文件中的,要得到最终运行的可执行程序,中间要经过编译和链接两个过程,最终生成二进制的可执行程序。

一个工程一般会有多个源文件组成,下图演示了源程序经过编译器和链接器处理的过程。

注:1每个源文件(.c)单独经过编辑器处理生成对应目标的文件(.obj为后缀的文件)

                    2多个目标文件和库文件经过链接器处理生成对应的可执行程序(.exe文件)

编译器对比:msvc(微软提供)、clang(苹果提供)、gcc等。

集成开发环境:vs2022、xcode(苹果提供)、codeblocks、devc++、clion等

集成开发环境(IDE)用于提供程序开发环境的应用程序,一般包括代码编译器、编译器、调试器和图形用户界面等工具。继承了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套。

vs2022 集成了Msvc(安装包较大,但无需多于配置)

xcode 集成了clang(苹果电脑上的开发工具)

codeblocks 集成了gcc(比较小众,需配置环境)

devc++ 集成了gcc(小巧,但工具简单,一些竞赛使用)

Clion 默认使用cmake(工具收费)

c语言文件基本认识:

1 xxx.c  源文件   2 xxx.  头文件  3  c++:cplusplus:cpp  4  c++代码文件后缀是.cpp、

第一个c语言程序

在屏幕上打印:hello world

编译+链接+运行代码Ctrl+F5

main函数

每个c语言程序都是从main函数开始执行,main函数也叫主函数。

main函数有且仅有一个

即使一个项目中有多个源文件(.c文件)但只能有一个main函数。

main函数的标准模板(这里的int表示main函数结束时会返回一个整数,return0意思是返回0)

int main()

{

return0;

}

注:1   main函数后()容易忘掉

       2   代码中不能使用中文符号

       3   一条语句结束后,有分号

main函数的常见写法

1  古老的写法(使用void无返回值)

void main()

{

printf();

}

2   参数部分多了void,这里表示main函数没有参数

int main(void)

{

return0;

}

3   int main(int argc,char* argv[])

{

return0;

}

括号内表示main函数有参(暂时不需要了解)

printf和库函数

printf是函数-c语言的标准库中提供的现成函数

功能:在屏幕上打印信息

int main()

{

printf("hello world \n");  //这里的\n表示换行的意思,双括号括起来的是一串字符被称为字符串

return0;

}

打印整数:

printf函数的其他使用

%d表示打印整数,%c表示打印字符,%f表示打印单精度浮点数,%lf表示打印双精度浮点数,%s表示打印字符串。

这里的%d %s %f 等是占位符

库函数

使用库函数时需包含头文件,如printf函数需包含stdio.h

#include<stdio.h>

std-standard-标准

i-inpute-输入

o-output-输出

简单来说库函数就是c语言标准规定的一些函数,这些函数组成了一个函数库,被称为标准库。

关键字介绍

int、if、return等此类符号被称为保留字或关键字

程序员自己在创建标识符时不能和关键字重复

关键字不能自己创建

字符和ASCII编码

每一个字符都有二进制序列,这个序列叫编码,后来出台了一个标准ASCII编码。

ASCII表码共包含128个ASCII编码

A-Z的ASCII码值从65-90

a-z的ASCII码值从97-122

对应大小写字符的ASCII的码值差值是32

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

换行\n的ASCII值是:10

在字符中ASCII码值从0-31这32个字符是不可打印字符

ASCII码表上编号为32-127的字符打印

#include<stdio.h>

int main()

{

int i =0

for(i=32;i<=127;i++)

{

printf("%c ",i);

}

return0;

}

0字符串和\0

使用双引号括起来的一串字符称为字符串,如:“abcdef”

int main()

{

printf("%s \n","abcdef");

return0;

}

c语言字符串中字符串结尾隐藏放着一个\0字符,这个\0字符是字符串结束的标志

"abcdef"=》[abcdef\0]

int main()

{

char arr1[]="abcdef";

return0;

}

用F10后用调试窗口中的监视可以看到\0

int main()

{

char arr1[]={'a',''b','c','d','e','f'};  //arr1中无\0

return0;

}

Ctrl+F5后分别跑下两个代码可以看出有无\0的区别

strlen是一个库函数-求字符串的长度,统计的字符串中\0之前的字符个数

在库函数中引用strlen使用string.h  这里由于arr1,中不含终止读取符\0所以读取时strlen会胡乱读取,所以会输出35

strlen的返回类型是size_t类型的应使用%zd

#include<string.h>

int main()

{

char arr1[]={'a','b','c','d'};

char arr2[]="abcd";

char arr3[]={'a','b','c','d','\0'};

printf("%zd ",strlen(arr1));

printf("%zd",strlen(arr2));

printf("%zd",strlen(arr3));

return0;

}

转义字符

顾名思义:转变为原来意思的字符

int main()

{

printf("abcnde\n");

printf("ab\nde\n");

return0;

}

\n在转义字符表示换行的意思,可以简单理解为'\'让n的意思发生了转变

\?:书写多个问号时防止被解析为三字母词(现在翻译器无法翻译三字母词)

\':用于表示字符常量'

\":用于表示字符串内部的双引号

\\:用于表示一个反斜杠,防止被解释为一个转义字符序列符

\a:警报,会使终端发出警报声或闪烁或同时警报闪烁

\b:退格键,光标回退一个字符

\f:换页符,光标移到下一页,类似于\v

\n:换行符

\r:回车键,光标移到同一行开头

\t:制表符,光标移到下一个制表符,通常是下一个4/8的倍数(=Tab键)

int main()

{

printf("%c\n",''\');

printf("%s","\"");

printf("c:\test\bit");

printf("c:\\test\\bit");

printf("\a");

printf("a\bc");

printf("abcdef\r");

printf("a\tbc\tdef\tqq");

return0;

}

\ddd:表示1-3个八进制的数字   如:\130表示字符x

\xdd:表示2个十六进制的数字   如:\30表示字符0

int main()

{

printf("%c\n",'\130');

printf("%c\n",'\36');

return0;

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值