IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C语言学习笔记-P1 初识C语言(1) -> 正文阅读

[C++知识库]C语言学习笔记-P1 初识C语言(1)

P1 初识C语言(1)

一、什么是C语言

1、定义

C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。

二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSIC,作为C语言最初的标准。目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。

C语言是一门面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同。

其编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。

那计算机语言是什么呢?说白了就是计算机交流的语言,比如:C/C++/JAVA /Python。

2、发展

计算机语言的发展早期的计算机能够识别的语言叫二进制语言,我们知道电脑属于硬件,是需要通电,而电有正电和负电之分,即分别用1和0来表达,所组成的二进制序列具有一定的意义,所以人们早期编程都是二进制,可见编程时非常复杂,那既然这样,能不能用几个字母来代替这些二进制呢?之后人们就用几个字母(助记符)来表示这些二级制,所以用助记符来表达的这些语言叫汇编语言。但后来发现汇编语言也还是太麻烦,随后就出现了B语言,B语言的基础上出现C语言,C语言的基础上发展程C++。到C/C++语言这儿就叫高级语言。

二、第一个C语言程序

Hello World

#include<stdio.h>
//凡是C语言都有一个下面这样的框架
int main() //主函数-程序的入口,一个程序只能有且只有一个main函数
{
	//这里完成任务
	//在屏幕上输出hello world
	//函数-print function -printf -打印函数,它是库函数,是c语言本身提供给我们使用的函数
	//include<stdio.h>  包含一个stdio.h的文件。std-标准(standard) i-input o-output
	printf("hello world\n");

	return 0; //表示返回值0
}
//int是整型的意思,main前面的int表示函数调用返回一个整型值
//int main()
//{
//	return 0; //表示返回值0
//}
//void main()  属于过时的写法

三、数据类型

char--------------------//字符数据类型
short-------------------//短整型
int-----------------------//整形
long--------------------//长整型
long long--------------//更长整形
float--------------------//单精度浮点数
double-----------------//双精度浮点数

#include<stdio.h>

int main()
{
	//%d-打印整型10进制数据
	//%c-打印字符格式的数据
	//%f-打印浮点型数字-打印小数
	//%p-以地址的形式打印
	//%x-打印16进制数字
	//%o...

	//char ch = 'A';//内存
	//printf("%c\n",ch);//%c-打印字符格式的数据

	//int age = 20;
	//printf("%d\n", age);//%d-打印整型10进制数据

	//long num = 100;
	//printf("%d\n", num);

	//float f = 5.0;
	//printf("%f\n", f);

	double d = 3.14;
	printf("%lf\n", d);
	return 0;
}
  1. 为什么会出现这么多的类型?
    因为每一种数据类型对应所占用的内存的大小不同,就是为了咱们使用内存的合理性。比如:你要显示年龄20岁,却用int的话,空间就有点浪费了,这时候应该用short int。
  2. 每种类型的大小是多少?
#include<stdio.h>
int main()
{
   //sizeof-表示xx的大小,此处用来查看各类型占用内存空间的大小
   //表示char,xx,能够向内存申请空间的大小
   printf("%d\n", sizeof(char));//输出是1字节
   printf("%d\n", sizeof(short));//输出是2字节
   printf("%d\n", sizeof(int));//输出是4字节
   printf("%d\n", sizeof(long));//输出可以是4字节,可以是8字节
   //因为同一个类型的有符号和无符号所占的内存相同
   printf("%d\n", sizeof(long long));//输出是8字节
   printf("%d\n", sizeof(float));//输出是4字节
   printf("%d\n", sizeof(double));//输出是8字节
   return 0;
}
  1. 计算机里的计算单位。
    bit -比特位-计算机最小单位
    byte -字节
    kb
    Mb
    Gb

    除了 1byte=8bit 外,它们之间的进制都是1024,比如1Mb=1024Kb。bit是计算机最小的单位,它只能存1/0,所以一个bit用来存放一个二进制位。
  2. 各数据类型能表达的数字的范围。
数据类型范围
char0~2^8-1
short0~2^16-1
int0~2^32-1
long0~2^32-1
long long0~2^64-1
float0~2^32-1
double0~2^64-1

四、变量,常量

#include<stdio.h>
int main()
{
	short age = 20;//向内存申请2个字节=16bit位,用来存放20。
	float weight = 95.5f;//单写95.5编译器会默认位double类型,发生精度丢失,从而报警,
	//所以在后加f,就会使95.5变成单精度浮点型。
	return 0;

}

补充:C语言标准规定:sizeof(long)>=sizeo(int) 的件就可以。

  1. 变量与常量。
    生活中不变的量,C语言中用常量来表示;
    生活中变化的量,C语言中用变量来表示。
  2. 定义变量的方法。
    公式:类型+变量名+值 例如:short age = 20;
  3. 变量的分类。
    定义:在代码块({})之外的变量称为全局变量,定义在代码块({})之内的变量称为局部变量。
#include<stdio.h>

int num1 = 20;//局部变量

int main()
{
	int num2 = 10;//局部变量
	return 0;
}

注意:
1)全局变量和局部变量的名字建议不要相同,相同容易误会而产生BUG。当全局变量和局部变量的名字相同时,局部变量优先级大于全局变量。
2)局部变量不能在它的范围外使用。如下代码,运行会报错。而全局变量在哪儿都可以使用。

#include<stdio.h>
int main()
{
	{
		int a = 10;
	}
	printf("%d\n");//局部变量a不能在它的范围外使用。如下代码,运行会报错。
	return 0;
}

  1. 变量的使用。
    例如: 两数之和。
#define  _CRT_SECURE_NO_WARNINGS  //解决C4996的错误
#pragma warning(disable:6031)
#include<stdio.h>

int main()
{
	//计算两数之和
	int num1 = 0;//申请内存放数据
	int num2 = 0;
	int sum = 0;
	//输入数据-使用输入函数scanf
	scanf("%d%d",&num1,&num2);//&为取地址符号
	//C语言语法规定,变量要定在当前代码块的最前
	sum = num1 + num2;
	printf("sum = %d", sum);
	return 0;
}

注意:如果编译器报C6031和C4996,检查代码是否含有如下两行代码:

#define  _CRT_SECURE_NO_WARNINGS  //解决C4996的错误
#pragma warning(disable:6031)
  1. 变量的作用域和生命周期。
    1)作用域(scope),程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效/可用的的,而限定这个名字的可用性的代码范围就是这个名字的作用域。
    通俗而言,就是这个变量哪里可用哪里不可用。
    例如:
    A、局部变量作用域:只能在当前大括号内使用,即所在的局部范围。
#define  _CRT_SECURE_NO_WARNINGS  //解决C4996的错误
#include<stdio.h>
//局部变量作用域:只能在当前大括号内使用。
int main()
{
	{
		int num = 0;
		printf("num = %d\n", num);//num这里才能用,因为num定义在当前大括号内部,即看变量所在大括号。
	}
	printf("num = %d\n", num);//num这里不能用
	return 0;
}

B、全局变量作用域:在整个工程任何地方可以使用,即整个工程。

#define  _CRT_SECURE_NO_WARNINGS  //解决C4996的错误
#include<stdio.h>

//全局变量作用域
int global = 2021;
void test()
{
	printf("test()-- %d\n", global);
}
int main()
{
	//为声明的标识符xxx
	//声明extern外部符号
	//extern int xxx;
	test();
	printf("%d\n", global);
	return 0;
}

补充:若要使用这个工程的另一个文件的全局变量,则需使用声明外部符号 extern int xxx;
C、局部变量生命周期:进入作用域生命周期开始,出作用域生命周期结束。

#define  _CRT_SECURE_NO_WARNINGS  //解决C4996的错误
#include<stdio.h>
//局部变量生命周期
int main()
{
	
	{
		int a = 10;
		printf("a = %d\n", a);//ok
	}
	printf("a =  %d\n", a);//error
	return 0;
}

D、全局变量生命周期:整个程序的生命周期。

未完待续!!!

以上所有课程笔记来自:@比特科技

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-08-26 11:56:22  更:2021-08-26 11:58:59 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/27 4:44:09-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计