2021/11/01 C语言第一天

Posted rubbish-杀手

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2021/11/01 C语言第一天相关的知识,希望对你有一定的参考价值。


helloworld程序
#include <stdio.h>
/*
    #:关键标识符,表示引入头文件。
    include:引入头文件关键字。
    stdio.h:系统标准输入/输出库对应的头文件,给下面的printf函数服务。
    <>:表示使用系统库函数。
    "":表示使用用户自定义库函数。
*/

int main(void)
/*
    int:函数返回值是整型数据。
    main:函数名,程序唯一的入口。   必须有,且仅有一个。
    void:表示函数调用无需传参。
*/
{//函数体的起始位置
    printf("hello world!\\n");//将"hello world\\n"写到屏幕上。   \\n:回车换行
    system("pause");//调用system函数,实现程序运行终端窗口暂停关闭功能。

    return 0;//返回当前函数调用 --- 退出程序。   0要跟main函数的返回值类型一一对应。
}//函数体的结束为止

运行结果:


system函数
#include <stdio.h>
#include <windows.h>

int main(void)
{
    printf("hello world!\\n");
    Sleep(2000);//等待2s,继续向下面执行
    system("cls");//调用system函数,实现清屏功能。

    return 0;
}

运行结果:=2s后=》


代码编写方式
1.借助vs编辑工具编写。
2.借助记事本、gcc编译工具编写。

​ 使用记事本创建helloworld.c文件 -> 在记事本中编写helloworld程序 -> 使用gcc编译工具,在helloworld.c文件所在目录中,执行gcc helloworld.c -o myhello.exe -> 在终端中,运行:myhello.exe


注释
1.多行注释 /**/

​ 不允许嵌套使用。多行注释中可嵌套单行注释。

2.单行注释 //

gcc编译4步骤
1.预处理

​ (1)指令:gcc -E xxx.c -o xxx.i

​ (2)结果:生成预处理文件。

​ (3)作用:

​ a.头文件展开 --- 不检查语法错误。可以展开任意文件。

​ b.宏定义替换 --- 将宏名替换为宏值。

​ c.替换注释 --- 注释替换为空行。

​ d.展开条件编译 --- 根据条件来展开指令。

2.编译

​ (1)指令:gcc -S xxx.i -o xxx.s

​ (2)结果:生成汇编文件。

​ (3)作用:

​ a.逐行检查语法错误 --- 整个编译4步骤中最耗时的过程。

​ b.将C程序翻译成汇编指令,得到.s汇编文件。

3.汇编

​ (1)指令:gcc -c xxx.s -o xxx.o

​ (2)结果:生成目标文件。

​ (3)作用:

​ 翻译 --- 将汇编指令翻译成对应的二进制编码。

4.链接

​ (1)指令:gcc xxx.o -o xxx.exe

​ (2)结果:生成可执行文件。

​ (3)作用:

​ a.数据段合并

​ b.数据地址回填

​ c.库引入


vs调试程序

1.设置断点 --- 添加行号:工具 -> 选项 -> 文本编辑器 -> C/C++ ->选中行号

2.停止的位置,是尚未执行的指令。

3.逐语句执行下一条(F11):进入函数内部,逐条执行跟踪。

4.逐过程执行下一条(F10):不进入函数内部,逐条执行程序。

5.添加监视:调试 -> 窗口 -> 监视:输入监视变量名。自动监视变量值的变化。


加法运算
#include <stdio.h>

int main(void)
{
    int a = 3;//定义整型变量a,赋初值3
    int b = 5;//定义整型变量b,赋初值5
    int c;//定义整型变量c,无初值

    c = a + b;//将a+b计算结果赋值给c

    printf("%d\\n", c);//%d:格式匹配符,匹配整型数据
    printf("c = %d\\n", c);
    printf("%d + %d = %d\\n", a, b, c);
    printf("%d + %d = %d\\n", a, b, a + b);

    return 0;
}

运行结果:

C语言培训第一天

 

【1】打开终端

1--- ctrl + ait + t //新打开一个终端
2--- ctrl + shift + n //在已打开终端前提下使用
3--- ctrl + shift + t //在已打开终端前提下使用

【2】linux @ ubuntu : ~ $

用户名 主机名 路径 命令提示符 ~ //家目录 ==》 /home/linux/
/ //根目录,linux底下一切文件的起源

$ //普通用户权限
# //超级用户权限

【3】ls
查看当前路径下的文件

【4】cd
路径切换

cd //直接切换到家目录
cd / //直接切换到根目录
cd 目录名 //切换到指定目录
cd .. //切换到上一级目录
cd - //切换到上一次目录

【4】su
切换用户的命令
su root //切换超级用户
exit //退出用户

【5】passwd
sudo //获取临时管理员权限
sudo passwd root //修改root用户的密码

【6】mkdir
mkdir 目录名 //创建目录
rmdir 目录名 //删除空目录

【7】touch
touch 1.txt //创建文件

【8】rm
rm 1.txt //删除文件
rm 目录名 -rf //删除目录

【9】ls
ls -l //以列表形式显示当前路径下文件的详细信息
ls -a //查看所有文件(包括隐藏文件)


d rwx rwx r-x 8 linux linux 4096 Mar 14 12:02 DIR
类型 权限 链接数 用户名 组名 文件大小 时间 文件名


【10】文件类型(7种)
一切皆文件的思想(bcd-lsp)
b //块设备文件
c //字符设备文件
d //目录
- //普通文件
l //链接文件
s //套接字文件
p //管道文件

【11】文件权限
rwx rwx r-x

r //可读权限
w //可写权限
x //可执行权限

第一组:用户本身权限
第二组:同组成员用户的权限
第三组:没有关系的其他用户权限

【12】
.. //上一级路径
. //当前路径


【13】echo
echo “hello” //向终端(标准输出)输出字符串
echo “ddd0”>>3.txt >>重定向输出

【14】VIM(编辑器)

1--- vi 3.txt
2--- 命令模式(Esc)
yy //复制
dd //剪切(删除一行)
p //粘贴
u //撤销
ctrl+r //反撤销
gg //光标移动到文件的第一行
G //光标移动到文件的末尾

noh noh查找高亮取消

 


3--- 输入模式(命令模式-->输入模式)
i //从光标所在位置前面开始插入资料
a //从光标所在位置后面开始插入资料
I //从光标列的第一个非空白字符开始插入资料
A //从光标所在行最后面的地方开始新增资料
o //在光标所在列下新增一列并进入输入模式
O //在光标所在列上方新增一列并进入输入模式

4--- 底行模式(Esc :)
w //保存
q //退出
wq //保存退出

w! //强制保存
q! //强制退出

vsp 1.txt //左右分屏显示
sp 1.txt //上下分屏显示

%s/hello/1234/g //将文件所有的“hello”替换成“1234”
7,14s/hello/HELLO/g //将文件7-14行的“hello”替换成“HELLO”
noh

【15】cat

cat 1.txt //将文件的内容打印到终端上

【16】cp
cp 1.txt filename //文件备份
cp 1.txt dirname //将文件复制到其他目录下

【17】mv
mv 1.txt .. //移动文件到上一级路径
mv 2.txt dirname

【18】GCC
1--- gcc 1.c //默认生成一个二进制a.out
./a.out //执行可执行文件


2--- gcc 1.c -o hello //指定输出一个hello的可执行文件
./hello


3--- 四步完整编译流程

预处理:主要进行宏替换以及头文件的包含展开
gcc -E Hello.c -o Hello.i

编译:编译生成汇编文件,会检查语法是否有错误
gcc -S Hello.i -o Hello.s

汇编:将汇编文件编译生成目标文件(二进制文件)
gcc -c Hello.s -o Hello.o

链接:链接库函数,生成可执行文件
gcc Hello.o -o Hello

4--- 两步编译流程

汇编:将汇编文件编译生成目标文件(二进制文件)
gcc -c Hello.c -o Hello.o

链接:链接库函数,生成可执行文件
gcc Hello.o -o Hello


【19】数值表示方式

man ASCII //查看ASCII码表

‘0’ ‘A‘~‘Z‘ ‘a‘ ‘z‘ ‘\n’ 空格

48 65~90 97~ 122 10 32


‘\0’(字符串的结束标志)
0

大小写字符相差:32


【20】代码跟踪调试

__LINE__ //代码所在的行数
__FUNCTION__ //代码所在的函数
__FILE__ //代码所在的文件

 

以上是关于2021/11/01 C语言第一天的主要内容,如果未能解决你的问题,请参考以下文章

Vue实战-第一天开发工具的使用

步入C编程的第一天

c语言中算每月第一天是周几的算法看不懂,请大神指教

c语言编写万年历时计算每月第一天是星期几的公式是啥

学习C语言第一天

第一天C#学习