Linux C系列学习笔记_第二集

vi编辑器

使用 touch  test1.c

或者直接使用 vi  test1.c

创建 test1.c文件

文件相关操作:

        cat  test1.c在终端查看文件的内容

        head test1.c在终端查看文件内容,默认查看前十行

        head  -n  test1.c        在终端查看文件内容的前n行

        tail  test1.c在终端查看文件内容,默认查看后十行

        tail  -n  test1.c   在终端查看文件内容的后n行

#include <stdio.h>  函数库	
// #开头  预处理
		// .h文件  头文件   
			//  < .h>  系统配置文件   /usr/include
			//	" .h" 用户新建的头文件(一般在当前文件夹里)
int main(int argc, const char *argv[])  
//main主函数,程序的入口;一个工程中主函数有且仅有一个
		// 扩展:命令行参数 argc 命令行输入字符串的个数
						// argv 存储命令行输入的字符串
{
	printf("hello world\n");
	return 0;
		// 主函数中的return,是主函数的结束标志  0整数  int
		// 函数的返回值要和函数的数据类型保持一致;不要返回值,函数数据类型可以定义成void
	printf("hello world\n");
	printf("hello world\n");
}

vscode编辑器

终端调起方法:

code  文件/文件夹名字

gcc编译器

使用方法:

gcc  test.c  编译文件,生成a.out

运行可执行文件 ./a.out

或者 gcc  test.c -o 想要取的名字

./名字

完整编译 (分4步)

例题:
1,使用gcc 程序编译生成可执行文件的步骤分为:预处理, 编译,汇编和链接
2,GCC编译器中 -S 选项完成的工作是汇编。

1.	预处理
展开头文件,替换宏定义,删除注释
gcc  -E  test.c  -o  test.i
2.	编译
检查语法问题,有错报错,没有则继续运行生成汇编文件
gcc  -S  test.i  -o  test.s
3.	汇编
生成一个不可执行的二进制文件
	gcc  -c  test.s  -o  test.o
4.	链接
链接库函数,最终生成二进制可执行文件
gcc test.o  -o  test(可执行文件名)
运行:./test

进制转换

计算机数据表示形式

1. 数值型数据

二进制            0 ,1 

八进制            0-7            8:010

十进制            0-9

十六进制         0-F           16:0x10

A到F分别表示10到15

十进制转二进制适用短除法

但是正常人选择使用计算器

二转八

        一位八进制用三位二进制转换

        11 010 110--->0326

八转二

        0777--->111 111 111

二转十六

        一位十六进制用四位二进制转

        1101 0110---》0xd6

十六进制转二进制

        0xab--->10101011

 非数值型数据

非数值型数据实际应用,操作的ASCII码值

可在终端输入

man ascii

查看ascii码表的信息(按q退出)

常用的ASCII码

'\0'                    0              字符串结束标志

'\n'                    10             换行

SPACE                   32             空格

'0'                     48

'A'                     65

'a'                     97

一些测试程序

#include <stdio.h>
int main(int argc, const char *argv[])
{
	printf("%d\n", '2' - '0');

	printf("%d\n", 'A');

	printf("%d\n", 'a');

	printf("%c\n", 'a' - 32);

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

	printf("%d\n", argc);
	float a = (float)5 / 2;
	printf("%.1f\n", a);
	float b = 5 / 2;
	printf("%f\n", b);
}

运行结果:

词法符号

运算符    关键字    标识符    分隔符    标点符号

关键字

存储类型:        auto  static  extern  register

数据类型:        int  char  float  short  long double  signed  unsigned

构造数据类型: struct  enum  union

分支:                if  else  switch  case  default  for  do while    go to   break  continue

其他:                void  const  sizeof  volatile  return  typedef

标识符

在给变量、数组、函数等命名时, 遵循标识符的命名规则:

1)由字母、数字、下划线(_)组成

2)开头不能是数字

3)不能和关键字重名

4)见名知意

驼峰法命名

        helloWorld:小驼峰命名(除第一个单词外,其他单词开头大写)  

        HelloWorld:大驼峰命名(每个单词开头大写)

运算符

        算术运算符    逻辑运算符    位运算符 关系运算符         三目运算符    赋值运算符

算术运算符

    + - * / % ++ --

int a=5/2;
printf("%d\n",a);			//2
========================
float a=5/2;
printf("%f\n",a);//2.000000			默认打印小数点后六位
float b=2;
printf("%f\n",b);//2.000000
==========================
float a=5.0/2;
printf("%f\n",a);	//2.500000
==========================
强制转换
float a=(float)5/2;   //强制转换只在当前这一行生效
printf("%.1f\n",a);			//2.500000		%.1f保留一位小数
float b=5/2;
printf("%f\n",b);		//2.000000

例题:1234  使用/ %分别表示出 1 2 3 4

一:

int a=1234;
printf("%d\n",a/1000);
printf("%d\n",a/100%10);
printf("%d\n",a/10%10);
printf("%d\n",a%10);

二:

#include <stdio.h>
int main()
{
    //正输出
    int a = 716463964;
    int b = 10;
    while (a > b * 10)
    {
        b *= 10;
    }
    for (; b > 10; b /= 10)
    {
        printf("%d\n", (a / b) % 10);
    }
    printf("%d\n", a % 10);
    return 0;
}

运行结果:

++,--等的用法

独立成句
	int a=6;
    	1)++a;    
    		printf("%d\n",a);		//7
2)	a++;
printf("%d\n",a);		//7
赋值运算
	int a=6;
    	1)int b=++a;  //+  =
    		printf("%d %d\n",a,b);//7 7
		2)int b=a++;  //= +
    		printf("%d %d\n",a,b);//7  6
打印语句
	int a=6;
    	1)printf("%d\n",++a);//7
    		printf("%d\n",a);//7
    	2)printf("%d\n",a++);//6
    		printf("%d\n",a);//7

课后练习:

  1. 解析代码:分析每一步变量的取值
#include <stdio.h>
int main(int argc, char *argv[])
   {
   		int a = 10;
   		int b = a--;			    //b=10 ,a=9	
  		int c = a + b + 2;		    //c=21
   		int d = (b--) + (++c);      //d=10+22=32
   		printf("%d\n",d);
   }

2.以下程序运行后输出的结果是——

#include <stdio.h>
int main()
{
    int k = 011;
    printf("%d\n", k++);
    return 0;
}

011为8进制数,结果为9

3.在C语言中,要求运算符必须是整型的运算符是(D)
A./
B. ++
C.!=
D. %

  • 26
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值