C语言基础

article/2025/8/19 2:40:09

01

Liunx相关命令

1.1 mv:移动,剪切命令

    命令格式:mv 源文件 目标文件 作用:剪切成新文件mv 源文件 目标目录下 作用:剪切到制定目录里面去mv 源目录 目标目录 作用:剪切成新目录mv 源目录 目标目录下作用:剪切到制定目录下

小案例:演练mv

mdir -p /home/tarena/mvtest
cd /home/tarena/mvtest
mkdir -p hello   在当前目录下创建hello目录
touch hello.txt  在当前目录下创建空文件
ls -lh 查看当前目录下所有文件和目录的详细信息
mv hello.txt hellol.txt 重命名
ls -lh
mv hellol.txt hello 把hello.txt 剪切到hello目录里面去
ls -lh
ls -lh hello/
mkdir -p hello2
mv hello2 hellol/   把hello2目录移动到hello1目录里面去
ls -lh
ls -lh hello2

1.2 whoami

    查看当前登录linux系统的用户名格式:whoami

1.3 cat

       快速查看文件内容格式:cat 文件名

例如:
cat home/tarena/hello.txt
cd /usr/include
cat stdio.h

1.4 echo

    打印命令,向显示屏打印信息  格式:echo 打印信息

例如:echo 我是大神
注意:echo
命令一般会配合’>‘或者’>>'一起使用
格式:echo 打印信息 > 文件名
功能: 将打印信息保存到文件中,如果文件有内容,会将原先的内容清楚,把新内容保存里面
echo 打印信息 >> 文件名
功能: 将打印信息保存到文件中,把新内容添加到文件的尾部,文件原来内容保持不变
echo:sudo /home/tarena/hello.txt
echo 我是大神 > hello.txt
cat hello.txt
echo 我是小森 > hello.txt
cat hello.txt
echo 我是大神 >> hello.txt
car hello.txt
echo 你是谁啊 >> hello.ttx
cat hello.txt

1.5 find

    查找文件命令 格式:find 路径 -name 文件名 语义:到指定的路径下找一个名称为name的文件

例如: find /usr/include -name stdio.h
cd /home/tarena
find . -name hello.txt

1.6 grep

    在文件中搜索关键字格式:grep -Rn "关键字" 文件名例如: touch /home/tarena/hello.txtecho 我是大神 > hello.txtecho 我是大神 >> hello.txtecho 我是大神 >> hello.txtecho abcdefg >> hello.txtcat hello.txtgrep -Rn "cde" hello.txt   在hello.txt 中搜索关键字cde

1.7 tar

    linux系统制作压缩包和解压缩命令记住以下三条终极命令:

// 制作压缩包两条命令:
tar -jcvf 压缩包名.tar.bz2 目录或者文件
作用:把目录或者文件制作成bz2格式的压缩包
tar -zcvf 压缩包名.tar.gz 目录或者文件
作用:把目录或者文件制作成gz格式的压缩包
// 解压缩命令一条:
tar -xvf 压缩包名.tar.bz2或者压缩包名.tar.gz 结果:生成目录或者文件

小案例:演练打包和解包

  mkdir -p /tarena/tartest/cd /tarena/tartest/touch hello.txtecho 123456 > hello.txtcd ..   进入上一级目录tar -jcvf tartest.tar.bz2 tartesttar -zcvf tartest.tar.gz tartestls -lh tartest.tar.bz2ls -lh tartest.tar.gzrm -rf tartesttar -xvf tartest.tar.bz2 tartestls -lh tartestcat tartest/hello.txtrm -rf tartesttar -xvf tartest.tar.gz tartestls -lh

02

Vim编辑器

2.1 创建的编辑器

    vim,  vscode,  sublime, eclipe等等

2.2 vim编辑器对应的命令:vim

    格式:vim 文件名语义:打开新建文件

2.3 vim三种模式:可视模式,编辑模式,命令行模式

    vim 默认模式是可视模式编辑模式: 可以修改命令行模式:可以给vim发送控制命令

2.4 三种模式的切换

可视模式------->按i键------>编辑模式编辑模式------->按ESC------>可视模式如果现在是可视模式------>按shift加:------->命令行模式命令行模式------>ESC------->可视模式

2.5 vim命令行模式下的相关命令:

    w:保存文件q:不保存退出wq:保存退出vim命令q!:强制退出%s/老信息/新信息/g:  字符串替换,将文件中所有的老信息用新信息替换例如:

%s/我是大神/whoani/g 将文件中所有的我是大神这四个字替换成whoami

    直接输入行号:让光标直接跳转到制定行号vs 文件名:左右分屏,这样可以同时编辑两个文件sp 文件名:上下分屏,这样可以同时编辑两个文件注意:屏幕之间切换的快捷键:ctrl+ww

2.6 vim可视模式下的相关快捷键

    1)光标移动快捷键:h(左移), j(下移), k(上移), l(右移) 2)行选中:shift+v然后移动光标选中那个3)列选中:ctrl+v 然后移动光标4)复制:Y5)粘贴:P6)剪切:X7)取消:U8)跳转到文件的尾部:G9)跳转到文件的开头:gg10)保存并且退出vim:ZZ11)自动补全:ctrl+n(注意:前提是先进入编辑模式,然后怓某个单词的开头字母,然后发现有多个相同开头的单词,根据需求选中一个即可

03

C语言编程基础

3.1. c语言功能:类似英语

3.2.编写第一个C语言程序

具体实施步骤:
mkdir -p /home/tarena/stdc/day02
cd /home/tarena/stdc/day02
vim helloworld.c 添加如下内容

/*
这是我的第一个C语言程序
我很激动
*/
// 这个仅仅作为一个测试
#include <stdio.h>

int main(void)
{
printf(“你好,世界”)
printf(“hello,world\n”);
return 0;
}
保存退出
继续执行一下命令
gcc helloworld.c 作用:编译程序
ls -lh 此时多了一个a.out文件
./a.out 作用:运行a.out程序

3.3.总结C程序基本编程规范

    a)	C程序对应的文件有两种形式:1.源文件:以.c结尾,例如:helloworld.c2.头文件:以.h结尾,例如:stdio.h任何C程序都必须有一个源文件,头文件可以有,可以没有b)	C程序的注释有两种形式(就是程序代码的解释说明,给程序员看,不参与程序的编译和运行)有两种:/*中间就是要解释说明的*/优点:可以注释多行缺点:不能嵌套注释,例如:/*我是大神/*我是小神*/*/(这种是错误的)// 后面跟要注释的内容优点:可以嵌套注释缺点:不能多行注释c)  C程序要包含一个别人写好的头文件(就是将头文件的内容全部拷贝过来),包含头文件的方法有两种:1. 语法:#include <头文件名>例如:  #include <stdio.h>语义:告诉gcc编译器将来默认到linux系统的/usr/include目录下找stdio.h头文件找到后将头文件内容全部拷贝过来2. 语法:#include "头文件名"列如: #include "stdio.h"语义: 告诉gcc编译器先在当前目录下找stdio.h头文件,如果

找到了,那就包含拷贝;如果没有找到,再去/usr/include目录下找头文件

stdio.h,如果找到那就拷贝, 如果还没找到,就报错

    d) C程序必须包含一个唯一的主函数,名称必须叫main并且main函数的原型必须如下:

{
里面就是将来要执行的语句
}

或者:
int main(void){
里面就是将来要执行的语句
}

结论:将来运行C程序时,linux操作系统,只认main函数,必须从main

函数开始执行 ,从main函数开始,从上往下挨个执行

    e) 	C程序的主函数main中能够(花括号里面的内容)编写规范:1. 每条语句后面都要跟";"2. 执行顺序:从上往下挨个执行3. 只要遇到或者执行return,C程序立马结束return后面可以跟一个数字,例如:return 0; 表示告诉操作系统,此程序执行结束了并且执行的很正常return -1; 表示告诉操作系统,此程序执行结束了但是执行的时候优点问题

例如:main函数的形式如下
int main(void)
{
printf(“你好,世界”)
printf(“hello,world\n”);
return 0;
}

    f)  第一个认识的标准C库函数printf()1. 标准C库函数使用,调用语法: 函数名(信息);2. printf函数的功能:向显示器上打印输出信息3. 例如:printf("输出打印的信息\n");注意: '\n': 表示回车换行,如果没有\n,光标继续显示在本行4. 注意:要想调用大神的printf,必须开头包含头文件stdio.h5. printf利用占位符可以打印输出制定的数字信息%d占位符功能:按照整数形式打印输出一个数字例如:printf("1+1 = %d\n", 2); 语义:将来2这个数字会放到%d这个位置上,然后将1+1                 = 2这个信息打印到显示器printf("1+1 = %d\n", 1+1);语义:先算1+1,然后将1+1 = 2这个信息打印到显示器

3.4. gcc编译源文件的三种方式

    3.3.1  gcc编译的三种方式a) 流氓法

gcc helloworld.c 默认都会生成a.out(这个名字做不到见名知意)

            b) 分步编译

gcc -E -o helloworld.i helloworld.c // 先预处理
gcc -c -o helloworld.o helloworld.i // 然后只编译,不链接
gcc -o helloworld helloworld.o // 最后链接大神的printf,最终何时能成helloworld可执行程序
.helloworld //运行程序

            c) 一步到位

gcc -o hellowprld helloworld.c //直接对源文件进行编译生成可执行文件
//心里要明白:gcc还要做三件事,只是看不到而已

04

C语言(C程序)的变量

  1. 务必掌握计算机内存相关的概念

    1.内存的特点

             暂存CPU运算之前的数据和运算之后的数据,还有暂存程序,任何程
    

序都是在内存中存储,所以 势必要消耗 内存,速度快,掉电数据丢失

    结论:程序最终玩内存字节(Byte):计算机将内存分成一格一格,每一个用来存储一个数字,每一个的专业术语叫字节注意Byte的简称:B

换算公式: 1KB=1024B 1MB=1024KB=10241024 1GB=1024MB=10241024KB=102410241024B

    地址(address): 计算机给内存的每个字节指定一个固定的唯一的编号,此编号从0开

始,后续字节地址加1即可

	此编号的专业术语叫地址切记:只要知道了内存的某个字节的地址,将来就可以中国地址对没

存进行访问(读或者写)

    存储区(Buffer):计算机将1个字节或者多个连续的字节形成一个存储单元用来存储数

	例如:300亿这个数字如果用1个字节来存储显然这个数字太大了,

1个字节存不下,可用4个字节的连续内存来存储这个数字

    首地址(base address):存储区中能够第一个字节的地址又称首地址

问:C程序如何分配内存空间来存储数字呢?

答:切记:任何程序要想访问内训,必须先分配获取到内存才能访问

	如果·没有分配内存,直接去访问,操作系统直接将程序干掉,杀死(操作系统心里骂街)C程序通过定义变量来实现分配的内存;2. 变量的功能:就是C程序分配内存空间,一旦分配成功,程序就可以对内存进行存

储数字还可以修改存储的数字

 3. 定义变量(又称分配内存)语法格式:数据类型  变量名 = 初始值(可以有,可以没有)

例如:int a = 250;

说明:

int:它是一个关键字,它对应一种数据类型,表示将来分配4字节的内存空间

a:变量名

250:就是给分配的内存放一个数字250

结论:这条语句的结果是分配了4字节的内存空间并且这块内存空间放了250数字

例如:修改变量的值(也就是修改内存存储的数字)

int a = 250;

a = 520; // 修改变量a的值为520,也就是将内存中原先的250数字修改为520,其中“=”就是重新赋值的意思

打印变量的值(打印内训中存储的数据值):printf("%d\n",a); //将变量a的值打印输出

    4. 定义变量的四种形式:1. 只定义(分配内存)不初始化(不赋初值)int a;  //此时变量a的值或者对应的内存存储的数字是一个随机乱七八糟的数字2. 定义并且初始化int a = 250;3. 连续只定义不初始化多个变量(逗号分割)int a, b, c;    // 同样变量的值是乱七八糟的随机数4. 连续定义斌那个企鹅初始化多个变量int a = 100, b = 200, c = 300;

小案例:演练变量的使用

  /*var.c:变量演示*//*编译运行命令:gcc -o var var.c 然后 ./var*/#include <stdio.h>int main(void)
{//1.形式1int a;  //只定义不初始化printf("a = %d\n", a);  // 打印a的值(打印分配的内存里面的数字)//修改变量的值也及时重新给内存放置一个新的数字a = 520;printf("a = %d\n", a);//2. 形式2:定义并且初始化int b = 250;printf("b = %d\n", b);//修改变量的值,也就是重新给内存放置一个新的数字b = 520;printf("b = %d\n", a);printf("a + b = %d\n", a+ b);printf("a - b = %d\n", a- b);printf("a * b = %d\n", a* b);printf("a / b = %d\n", a/ b);//3.形式3:连续定义但不初始化(随机数)int c, d, e;printf("c = %d, d = %d, e = 5%d\n", c, d, e);//4.形式4:连续定义但不初始化int i = 100, j = 200;printf("i = %d, j = %d\n", i, j);return 0;}

cd tarena/stdc/day02
vim var.c
gcc -o var var.c
./var

    5.标识符命名规则a) 标识符:就是变量名(例如:a,b,c,d)或者函数名(例如:main,

printf等)

	b) 标识符命名规则:1. 第一个字母不能是数字,只能是字母或者下划线,区分大小写

例如:int 2var; //gcc报错
int v2ar; // 可以
int _2var; //可以

		2. 尽量做到见名知意

int a = 18; //你能知道a代表什么意思嘛?
int age = 18;//age就是年龄的意思

		3. 驼峰和下划线

驼峰:int nAge = 19;
int CreateWindows = 250;
下划线:int create_windows = 250;

		 4. C语言的关键字不能使用

例如:int, return, void等不能用

        6.C语言的编程风格:(不强求,其他风格都要根据公司来定)a)各种该该有空格加空格该独占一行的独占一行该有TAB键的添加TAB键例如:int main(void) {printf("hello,world\n");return 0;} // 读起来太费劲了应该:int main(void)

{ //独占一行

      printf("abc\n");printf("cbd\n");}  //独占一行b)代码尽量写在屏幕左侧2/3区域,右侧1/3建议留白,如果超

过换行

  例如:printf("aaaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbb cccccccccccccccccccc\n");建议:printf("aaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbcccccccccccccccc\n");

关注公众号获取更多金彩内容关注公众号获取更多精彩内容


http://chatgpt.dhexx.cn/article/OsWPSDNW.shtml

相关文章

c语言三个标准流文件格式,标准C语言day02

标准C语言day02 复习&#xff1a; 1、常用的Linux命令 ls、cd、pwd clear touch cp mv rm cat/more/head/tail mkdir rmdir chmod find grep ifconfig ping whoami man sudo ftp telnet ssh tar 2、vim文本编辑器 vi是系统自带的文本编辑器&#xff0c;vim是它的增强版本。 三大…

cf1579

A. Casimir’s String Solitaire 给定一个只存在ABC的字符串&#xff0c;一次操作可以同时删除任意位置的‘A’和‘B’或‘B’和‘C’&#xff0c;问能否删完。 只需判断B的数量是否等于AC的数量。 #include<bits/stdc.h> using namespace std;#define read(a) scanf(&q…

CF 817 C

原题链接&#xff1a; Problem - C - Codeforces 题意&#xff1a; 问从 1 ~ n 有多少个数能使&#xff0c;它减去它的数字和 s。 解法&#xff1a; 可以发现&#xff0c;如果 num 满足条件&#xff0c;那么 num 1 一定也满足条件&#xff0c;所以就有单调性&#xff0c…

CF1837 A-D

A题 题目链接&#xff1a;https://codeforces.com/problemset/problem/1837/A 基本思路&#xff1a; 要求计算蚂蚱到达位置 x最少需要多少次跳跃&#xff0c;并输出蚂蚱的跳跃方案。因为每次可以向左或向右跳跃一定距离&#xff08;距离必须为整数&#xff09;&#xff0c;但是…

npm不是内部命令或外部命令

如上&#xff0c;看到npm -v 或者安装软件时&#xff0c;经常跳出的问题。npm需要加入环境变量中。 如上图片&#xff0c;新建两个文件 node_global\npm&#xff0c;并加入环境变量中。 D:nodejs\node_modules\npm路径下找到.npmrc文件&#xff0c;将其内容改为 prefixD:\node…

启动VUE工程时,出现npm不是内部命令

出现npm不是内部命令&#xff0c;然后查询node -v&#xff0c;也发现node不是内部命令。 所以定位应该是nodejs的问题&#xff0c;因为我的nodejs已经安装了&#xff0c;所以最大的可能就是没有配置环境变量或者配置的不对。 解决步骤&#xff1a; 1.设置环境变量&#xff1…

nvm安装node后npm不是内部命令

nvm install时先下载node&#xff0c;然后下载npm&#xff0c; 下载npm时在node安装目录中会出现temp文件夹&#xff0c;其中有npm压缩包 1、及时将npm压缩包复制出来&#xff0c;不然过会就被删除了 2、解压缩 查看安装目录 使用11.0.0版本 node能够使用&#xff0c;npm不能…

'npm' 不是内部或外部命令,也不是可运行的程序

使用npm命令提示: ‘npm’ 不是内部或外部命令&#xff0c;也不是可运行的程序 在安装nodejs时候&#xff0c;有时候我们会把它安装在d盘或别的盘时&#xff0c;经常会遇到npm环境变量没有配好&#xff0c;需要自己手动去配置。 nodejs在nodejs官网下载后直接点击安装 在安装完…

解决办法‘npm‘ 不是内部或外部命令,也不是可运行的程序或批处理文件。

今天使用了nvm这个node的保姆级版本管理工具,的确很香。 首先打开官网nvm.uihtm.com/ 下载安装过程很顺利&#xff0c;但是验证node及npm是否安装成功时&#xff0c;出现下面错误提示。 C:\Users\Administrator>npm -v npm 不是内部或外部命令&#xff0c;也不是可运行的…

npm不是内部命令也不是外部可运用程序

在安装好nodejs之后发现每次执行npm命令的时候都会报错&#xff1a;npm不是内部命令也不是外部可运用程序 如下&#xff1a; 百度了很久了没有找到解决办法&#xff0c;最后通过https://blog.csdn.net/qq_41542894/article/details/80330108这篇文章才得以搞定 具体办法就是修…

idea中执行“npm”命令,提示‘node‘ 不是内部或外部命令,也不是可运行的程序

问题描述&#xff1a;idea中执行“npm”命令&#xff0c;提示‘node‘ 不是内部或外部命令&#xff0c;也不是可运行的程序 前提&#xff1a;首先确保自己安装的node.js 环境变量配置成功 解决办法&#xff1a; 重启idea&#xff0c;以管理员身份运行idea&#xff01;&#xf…

nvm安装node后,在使用npm指令时候显示不是内部或外部指令

问题回放 前段时间重装了电脑系统&#xff0c;重新下载了nvm来管理node版本&#xff0c;当时下载的时候可能没有注意&#xff0c;今天用npm的时候就报错npm不是内部或外部指令。 思来想去百度了看看&#xff0c;说是环境变量的问题&#xff0c;我安装nvm的时候改的D盘&#x…

nvm安装node后npm run dev一直报node不是内部或外部命令

nvm安装包下载地址https://github.com/coreybutler/nvm-windows/releases 找到nvm-setup.zip&#xff0c;解压安装即可 如果打不开&#xff0c;也可以在这里下载 链接&#xff1a;https://pan.baidu.com/s/1EvC6oTff1uPD20_RRR9SGQ 提取码&#xff1a;9ztx 安装node nvm inst…

nvm管理node版本 nodenpm不是内部或外部命令,也不是可运行的程序

最近&#xff0c;有新老项目一起开发&#xff0c;node版本太高&#xff0c;老项目起不来&#xff1b;node版本太低&#xff0c;新项目还搭不起来…所以&#xff0c;一个nvm就显得很有必要了。这几个坑掉的&#xff0c;摔的我差点起不来… 废话少说就是&#xff1a; 用管理员身…

解决 npm‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件

按照网上的方法使用nvm install命令下载&#xff0c;出现 npm‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。 显示npm安装完成缺报错。环境变量系统自己配好&#xff0c;也没问题。 打开mvn文件夹一看&#xff0c;npm并没有下好&#xff0c;怪不得报错&#xff0c;…

【无标题】cmd命令窗口显示‘npm‘ 不是内部或外部命令

在cmd命令窗口显示上图信息时&#xff0c;大部分是因为nodejs没有装上&#xff0c;如果装上了nodejs&#xff0c;那就是因为没有正确在环境变量里配置路径。配置路径&#xff1a; &#xff08;1&#xff09;新建变量 NODE_PATH D:\Program Files\nodejs; &#xff08;2&#…

使用nvm下载node版本之后,输入npm报错:“npm”不是内部或外部命令,也不是可运行的程序或批处理文件(nvm使用二)

在使用nvm安装node版本成功之后&#xff0c;输入npm发现npm并没有安装成功&#xff0c;在网上查阅资料&#xff0c;发现可能是由于安装的那个node版本是不带npm包的&#xff0c;可以尝试安装一下其他版本的node&#xff0c;我在安装了第二个node版本之后&#xff0c;发现npm已经…

解决“npm不是内部或外部命令“

在使用npm的时候&#xff0c;或者是通过npm下载了一些包&#xff0c;使用这些包的时候&#xff0c;有时候会遇到“npm 不是内部或外部命令”&#xff0c;或者“XXX 不是内部或外部命令”。这种情况一般都是由于安装node.js的时候&#xff0c;环境变量没有配置好。这里把如何配置…

安装nvm 后npm不是内部或外部命令,也不是可运行的程序的处理方法

全年无休&#xff0c;24小时待命 只要有朋友需要重装电脑&#xff0c;买新电脑&#xff0c;维修电脑&#xff0c;都会找程序员哥哥&#xff0c;他们是会写代码&#xff0c;不见的就会修理电脑啊。真是大家对程序员的错误认知。 学不完的新技术&#xff0c;三天不学习就感觉落…

通过管理员模式 解决idea中 “npm不是内部或外部命令“

这个前提一般就是你的nodejs其实已经是装好了&#xff0c;环境也设置好了&#xff0c;但是你的idea仍然无法使用这个npm的命令 那么原因很有可能是你用了utool之类的工具&#xff0c;导致打开软件的时候基本上是没有管理员权限的 解决方案&#xff1a; 就是你直接用win中找出…