代表包含stdio.h这个头文件使用C语言库函数需要提前_在c语言system是关键字吗">
当前位置:   article > 正文

C语言基础【关键字、System函数、C语言编译过程、数据类型以及如何表示相应进制数】_在c语言system是关键字吗

在c语言system是关键字吗

一、C语言关键字

在这里插入图片描述

//导入标准输入输出库
#include<stdio.h>//包含头文件 std标准库  io input output 输入输出库
int main(void){
	printf("HelloWorld");
	return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

C语言的源代码文件是一个普通的文本文件,但扩展名必须是.c

(1) include头文件包含

  • #include的意思是头文件包含,#include <stdio.h>代表包含stdio.h这个头文件

  • 使用C语言库函数需要提前包含库函数对应的头文件,如这里使用了printf()函数,需要包含stdio.h头文件

  • 可以通过man 3 printf查看printf所需的头文件

  • #include< > 与 #include ""的区别:
    ①、< > 表示系统直接按系统指定的目录检索,系统库
    ②、" " 表示系统" " 指定的路径(没写路径代表当前路径)查找头文件,如果找不到,按系统指定的目录检索,自定义头文件

(2)main函数

  • 一个完整的C语言程序,是由一个、且只能有一个main()函数(又称主函数,必须有)和若干个其他函数结合而成(可选)。
  • main函数是C语言程序的入口,程序是从main函数开始执行

(3) {} 括号,程序体和代码块

  • {}叫代码块,一个代码块内部可以有一条或者多条语句
  • C语言每句可执行代码都是";"分号结尾,分号代表一条语句的结束,多个分号代表多个空语句
  • 所有的#开头的行,都代表预编译指令,预编译指令行结尾是没有分号的
  • 所有的可执行语句必须是在代码块里面

(4) 注释

  • //叫行注释,注释的内容编译器是忽略的,注释主要的作用是在代码中加一些说明和解释,这样有利于代码的阅读
  • /**/叫块注释
  • 块注释是C语言标准的注释方法
  • 行注释是从C++语言借鉴过来的

(5)printf函数

  • printf是C语言库函数,功能是向标准输出设备输出一个字符串
  • printf(“hello world\n”);//\n的意思是回车换行

(6) return语句

  • return代表函数执行完毕,返回return代表函数的终止
  • 如果main定义的时候前面是int,那么return后面就需要写一个整数;如果main定义的时候前面是void,那么return后面什么也不需要写
  • 在main函数中return 0代表程序执行成功,return -1代表程序执行失败
  • int main()和void main()在C语言中是一样的,但C++只接受int main这种定义方式

二、System函数

(1)system函数的使用

#include <stdlib.h>
int system(const char *command);
功能:在已经运行的程序中执行另外一个外部程序
参数:外部可执行程序名字
返回值:
成功:不同系统返回值不一样
失败:通常是 - 1
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
#include <stdio.h>
#include <stdlib.h>

int main()
{
	//system("calc"); //windows平台
	system("ls"); //Linux平台, 需要头文件#include <stdlib.h>

	return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

在Windows系统中运行后,会调出计算器程序

(2)system返回值不同系统结果不一样

C语言所有的库函数调用,只能保证语法是一致的,但不能保证执行结果是一致的,同样的库函数在不同的操作系统下执行结果可能是一样的,也可能是不一样的。

C语言编译过程

(1)C语言编译步骤

C代码编译成可执行程序经过4步:

  • (1)预处理:宏定义展开、头文件展开、条件编译等,同时将代码中的注释删除,这里并不会检查语法
  • (2)编译:检查语法,将预处理后文件编译生成汇编文件
  • (3)汇编:将汇编文件生成目标文件(二进制文件)
  • (4)链接:C语言写的程序是需要依赖各种库的,所以编译之后还需要把库链接到最终的可执行程序中去
    在这里插入图片描述

三、数据类型

(1)变量

  • 变量:
    ①、在程序运行过程中,其值可以改变
    ②、变量在使用前必须先定义,定义变量前必须有相应的数据类型
  • 变量特点:
    ①、变量在编译时为其分配相应的内存空间
    ②、可以通过其名字地址访问相应内存

(2)声明和定义区别

声明变量不需要建立存储空间,如:extern int a;
定义变量需要建立存储空间,如:int b =10;

#include <stdio.h>

int main()
{
	//extern 关键字只做声明,不能做任何定义
	//声明一个变量a,a在这里没有建立存储空间
	extern int a;
	a = 10;	//err, 没有空间,就不可以赋值

	int b = 10;	//定义一个变量b,b的类型为int,b赋值为10

	return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 从广义的角度来讲声明中包含着定义,即定义是声明的一个特例,所以并非所有的声明都是定义:
    ①、int b 它既是声明,同时又是定义
    ②、对于 extern b来讲它只是声明不是定义

一般的情况下,把建立存储空间的声明称之为“定义”,而把不需要建立存储空间的声明称之为“声明”。

(3)常量

  • 常量:
    ①、在程序运行过程中,其值不能被改变的量
    ②、常量一般出现在表达式或赋值语句中
  • 常量的定义
    ①、const 数据类型 常量名
    ②、#define 常量名 值
  • 注意:
    ①通过#define定义的常量是根据值来匹配数据类型的
    ②const修饰的常量是不安全,可以通过指针来修改
#include <stdio.h>
#define PI 3.14159265
 
int main(void)
{
	//定义常量
	int a=10;
	printf("%d\n",a);
	//定义常量
	const int b = 100;
	printf("%d\n",b);
	double c = PI*3; 
	printf("%f\n",c); //9.424778
	return 0;	
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

(4)标识符命名规则

  • 标识符命名规则:
    ①、标识符不能是关键字
    ②、标识符只能由字母、数字、下划线组成
    ③、第一个字符必须为字母或下划线
    ④、标识符中字母区分大小写

四、数据类型

  • 数据类型的作用:编译器预算对象(变量)分配的内存空间大小。
    在这里插入图片描述

(1)整型

①、整型变量
  • 作用:整型变量表示的是整数类型的数据
  • 常用的整型有:short、int、long、long long
数据类型占用空间取值范围
short(短整型)2字节(-2^15 ~ 2^15-1)
int(整型)4字节(-2^31 ~ 2^31-1)
long(长整形)Windows为4字节,Linux为4字节(32位),8字节(64位)(-2^31 ~ 2^31-1)
long long(长长整形)8字节(-2^63 ~ 2^63-1)
  • 注意:
    ①、需要注意的是,整型数据在内存中占的字节数与所选择的操作系统有关。虽然 C 语言标准中没有明确规定整型数据的长度,但 long 类型整数的长度不能短于 int 类型, short 类型整数的长度不能短于 int 类型。
    ②、当一个小的数据类型赋值给一个大的数据类型,不会出错,因为编译器会自动转化。但当一个大的类型赋值给一个小的数据类型,那么就可能丢失高位。

五、C语言如何表示相应进制数

打印格式含义
%d输出一个有符号的10进制int类型
%o输出8进制的int类型
%x输出16进制的int类型,字母以小写输出
%X输出16进制int类型,字母以大写输出
%u输出一个10进制的无符号数
  // 以下是合法的二进制
  int a = 0b101;      // 换算成十进制为 5
  int b = -0b110010;  // 换算成十进制为 -50
  int c = 0B100001;   // 换算成十进制为 33
  • 1
  • 2
  • 3
  • 4
十进制以正常数字1-9开头,如123
八进制以数字0开头,如0123
十六进制以0x开头,如0x123
二进制以0b或0B(不区分大小写)开头
  • 标准的C语言并不支持上面的二进制写法,只是有些编译器自己进行了扩展,才支持二进制数字。换句话说,并不是所有的编译器都支持二进制数字,只有一部分编译器支持,并且跟编译器的版本有关系。
#include <stdio.h>

int main()
{
	int a = 123;		//十进制方式赋值
	int b = 0123;		//八进制方式赋值, 以数字0开头
	int c = 0xABC;	//十六进制方式赋值

	//如果在printf中输出一个十进制数那么用%d,八进制用%o,十六进制是%x
	printf("十进制:%d\n",a );//十进制:123
	printf("八进制:%o\n", b);//八进制:123
	printf("十六进制:%x\n", c);//十六进制:abc

	return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
打印格式对应数据类型含义
%dint接受整数值并将它表示为有符号的十进制整数
%hdshort int短整数
%huunsigned short无符号短整数
%ounsigned int无符号8进制整数
%uunsigned int无符号10进制整数
%x,%Xunsigned int无符号16进制整数,x对应的是abcdef,X对应的是ABCDEF
%ffloat单精度浮点数
%lfdouble双精度浮点数
%e,%Edouble科学计数法表示的数,此处"e"的大小写代表在输出时用的"e"的大小写
%cchar字符型。可以把输入的数字按照ASCII码相应转换为对应的字符
%schar *字符串。输出字符串中的字符直至字符串中的空字符(字符串以’\0‘结尾,这个’\0’即空字符)
%pvoid *以16进制形式输出指针
%%%输出一个百分号
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/329578
推荐阅读
相关标签
  

闽ICP备14008679号