[C]第一章--初识C语言(1)--C新手入门

什么是C语言?

C语言是一门通用的计算机编程语言,广泛应用于底层开发.
C语言的设计目标是提供一种能以建议的方式编译,处理低级存储器,减少少量机器码,以及不需要任何环境支持便能运行的编程语言.
尽管C语言提供了许多低级处理的功能,但依然保持着良好的跨平台的特性,以一个标准规格写出的C语言程序员可在许多电脑平台进行编译,甚至包括一些嵌入式处理器(单片机或称MCU)以及超级电脑等工作平台.
二十世纪八十年代,为了避免各开发平台产商用的C语言语法产生差异,由美国国家标准局为C语言制定了一整套完整的美国国家标准法,称为ANSI C,作为C语言最初的标准.
2011年12月8日,_国际标准化组织(ISO)_和_国际电工委员会(IEC)_发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉子函数名和汉字标识符,一定程度上实现了汉字编程.
C语言是一门面向过程的计算机编程语言,与C++,Java等面对对象的编程语言有所不同.
其编译器主要有Clang/GCC/WIN-TC/SUBLIME/MSVC/Turbo C等.

第一个C语言程序

本人采用的IDE为VS2017
1.进入VS,点击左上角 文件 -> 新建 -> 项目,选择空工程,创建;
2.在解决方案中找到 源文件,右键点击 添加->新建项,选择C++文件,名称改为test.c
(.c为C语言格式后缀/.cpp为C++格式后缀)
(因为C++对C语言有很好的兼容性,所以选择C++文件)
3.这样,集成开发环境就初始化完成了,可以开始代码编写.

#include<stdio.h>

int main(){
	printf("hello,world!\n");
	return 0;
}
  • #include<stdio.h> 为一句预处理指令,指的是包含一个头文件.这个文件是C语言标准库中的文件(标准输入输出standard input/output).
  • int main() 为主函数,也是程序的入口.其中的内容为函数体.
  • printf为输出语句,表示打印其中的内容,双引号" "中包含的就是打印的内容,其中\n为换行操作符
    运行结果将会一瞬而逝,所以为了更好地观察程序运行结果,引入一句system(“pause”);语句,使用system需要包含一个头文件stdlib.h
#include<stdio.h>
#include <stdlib.h>

int main(){
	printf("hello,world!\n");
	system("pause");
	return 0;
}

这时候就可以观察到我们想要得到的结果了:

hello,world!

数据类型

有什么意义呢?通俗来说就是存放变量,因为变量有大小,所以从内存开辟的存储空间就不尽相同,以下罗列一下通常使用的几种:

  • char //字符数据类型
  • short //短整型
  • int //整型
  • long //长整型
  • long long //更长的整型
  • float //单精度浮点型
  • double //双精度浮点型
    数据在内存的存储形式为二进制,不同的数据类型所占内存大小不同,那么是如何"测量"出来的呢?
    通过sizeof方法返回变量占用的内存空间.
#include <stdio.h>
int main(){
	printf("%d\n",sizeof(char));
	printf("%d\n",sizeof(short));
	printf("%d\n",sizeof(int));
	printf("%d\n",sizeof(long));
	printf("%d\n",sizeof(long long));
	printf("%d\n",sizeof(float));
	printf("%d\n",sizeof(double));
	system("pause");
	return 0;
}

这样就可以求出每种类型所占内存大小了.

  • char 占1字节;
  • short 占2字节;
  • int 占4字节;
  • long 占4字节;
  • long long 占8字节;
  • float 占4字节;
  • double 占8字节;

举例分析:
int 占4个字节,一个字节占8个二进制位,也就是共占32个二进制位,如果是无符号就可以表示的数据范围就是0~232-1,其大小大约42亿9千万.
这种演化方法其他数据类型也适用:

数据类型 带符号
char -128~127
short -32768~32767
int -21亿~21亿
数据类型 无符号
char 0~255
short 0~65535
int 0~42亿9千万

以上数字表示每个类型可以表示的数字范围,其中的符号表示 负号.

所以用户输入的信息就需要确认使用的数据类型可以存放得下,否则就会溢出.
同时需要确认输入数据和数据类型相匹配!

变量和常量

生活中的有些值是不变的:比如圆周率,性别,身份证号码,血型等.
有些值是可变的:比如年龄,体重,时间等.

变量

变量的分类

1.局部变量
2.全局变量

#include<stdio.h>
#include <stdlib.h>

int global = 2019;//全局变量
int main(){
	int local = 2018;//局部变量
	int global = 2020;
	printf("global = %d\n",blobal);
	printf("local = %d\n",local);
	system("pause");
	return 0;
}

输出结果为:
global = 2020
local = 2018;

所以,当局部变量和全局变量重名的时候,局部变量优先使用

变量的作用域与生命周期

作用域

一段代码中所用到的名字并不总是有效的,可用的,而限定这个名字的可用性的代码范围就是这个名字的作用域.
1.局部变量的作用域是变量所在的局部范围,也就是当前大括号.
2.全局变量的作用域是整个工程.

生命周期

变量的创建到变量的销毁之间的一个时间段.

1.局部变量的生命周期是:进入作用域 生命周期开始,出作用域生命周期结束.
2.全局变量的生命周期是:整个程序的生命周期.

常量

常量的分类

1.字面常量

3.14f;
10000;

2.const修饰的常变量
(const修饰后变量的值不可以再更改)

const float pai = 3.14;

3.#define定义的标识符常量
(#define这个宏定义知识单纯的文本替换)

#define max 1000

4.枚举常量
(枚举常量默认从0开始赋值,也相当于给每个元素进行排序,是快速定义连续常量的一种方式)

enum Sex{
	MALE,
	FEMALE,
	SECRET,
};

猜你喜欢

转载自blog.csdn.net/qq_42351880/article/details/84728885