c 语言学习大全 值得收藏的文章

语言学习大全

C 语言的基础语法

第一部分 软件的安装

1.推荐使用 visual studio 编辑器

https://visualstudio.microsoft.com/zh-hans/

编辑器的下载网址

安装流程 和一般软件一样

我是百度看了别人的博客 建议性的安装

软件比较大  但是学习么  先学完再说 

2.Vc6++

这个软件 很多大学都在用   可能你也用过
你说他能用么  能用  但是好用么 我觉得还可以在优化一下
而且这个软件几乎十几年的历史了

3.学校 自己教学用的软件

一般在大学  有的会 使用一些绿色的软件
后面会提示 是实验室使用

第二部分 入门hello world

内容

#include<stdio.h>

int main() {
   
	printf("hello world");
	return 0;
}

流程就是

  1. 打开visual studio 的编辑器
  2. 可能会让你登录 可以不登录 直接跳过
  3. 新建文件 ---->选择文件的存放位置
  4. 之后就会有个 介绍文件
  5. ctrl +a 回车 删除
  6. 写下上面文件的内容就行了
  7. 然后进行选择 最上面导航的 生成 (B) ----生成 解决方案
  8. 最上面导航的 调试 (D) ----开始执行(不调试)

第三部分 hello world-基本构成

#include<stdio.h>
//引入头文件   这里面放着printf的定义 如果你使用printf
//就需要使用这个头文件 提前声明printf  不然会报错

//定义函数add
int add(int a, int b)
{
   
	return a + b;
}

//定义入口文件 main 唯一一个的main
int main()
{
   
	printf("输出信息 hello world \n");
	int result;
	result = add(12, 11);
	printf("result的和就是%d\n", result);
	return 0;
}

​ 基本理解 hello world 用到的构成内容

  • 函数
  • 主函数
  • 变量
  • 关键字
  • 常量
  • printf
  • include

函数

函数就是一个功能  比如车 有行驶跑的功能
加油(输入) ====发动机(处理)=======产生热能推动轮子前进(输出)

函数就是如此 
比如 计算一个相加的函数

(能量的类型)  功能名字  (输入 油)
{
   
    发动机执行过程
    
    return 输出移动轮子的能量
}

(输出值的类型)  函数名字  (参数类型 参数1,参数类型 参数2)
{
   
    执行过程
    
    return 输出值
}

int add (int a,int b)
{
   
    return a+b
}
这就是一个函数是

主函数

上面我们已经自己定义好了一个 add函数 ,那我们需要怎样来使用它呢? add函数 能直接运行嘛? 答案是不行的。

所有的C语言代码都有一个起始入口,而这个入口就是 主函数main 。进入了主函数以后,才能经由主函 数来调用其他函数。 这也意味着,每个C语言代码,只能有且只有一个main函数。 我们把代码稍微修改,现在代码如下。

//例子
#include <stdio.h>
int add(int a, int b)
{
   
	return a + b;
}
int main()
{
   
    int result;
    result = add(2, 3);
    printf("%d", result);
    return 0;
}
int main() // 这是主函数
{
   
  return 0; // 主函数返回值
}

主函数是一个为mian 命名的函数
而且一个文件中只能存在 一个main文件
有时也成为了 入口文件

函数的执行  需要在main中调用 

自然地,我们会想到,主函数是被谁调用的?主函数的返回值必须是 int 吗?
主函数在程序开始的时候被自动调用,不需要在程序内主动调用主函数。
而主函数的返回值会返回给调用这个程序的程序。
C语言标准中规定主函数有返回值且必须是 int 。如果程序正常结束,一般将返回值设置为0

变量

变量就是一个容器 他可以接受相同类型的任意值

int bian
bian =12
bian =55


变量就是存放值的地方

但我们需要值的时候可以直接 去找bian 去那值存值

变量声明

变量的类型 变量名字
int  result    一个存放整型结果的变量

容器类型  容器的名字
碗         大米   一个存放大米的碗  可以放黑米 白米  糯米....

赋值

就是给值的意思 常用于给变量存值

int result
result   =   12
意思是吧12 存放到result中 
下次可以直接从result获得12

常量

就是不变量的

例如 常见的 π 默认π=3.14

标识符

标识符 就是用来表示的一种符号

可用于变量 函数 实例的名字

比如 你的名字 用来表示你这个人的称呼

int result  

其中 result 就是标识符  

标识符的构造有一定的规则

1.标识符 有数字 字母 _ 构成
2.标识符 不能以数字开头  可以字母 _开头
12a 是不性的
a12 是可以的

字面量

字面量说白了就是一个值的意思

比如 12 就是字面意思12 “我爱你” 就是字面意思我爱你

关键词

系统为了运行 已经提前定义好的东西

例如 if else 你就不能在用了

printf函数

#include <stdio.h>
int main()
{
   
    printf("Hello World\n");
    return 0;
}	

由单词 print(打印) 和单词 format(格式) 的首字母f组成,意为格式化打印。

可以输出一数据

printf("输出的内容");

peintf("%d",a);  按照格式化的输出  就是把%d 替换为a输出出去

#include命令

printf函数 并不是我们定义的函数,而是系统自带的函数。这个函数被写在文件 stdio.h 中,我们要使 用 printf 就必须先让编译器理解 printf 。 我们假定 printf 的函数定义写在文件 stdio.h 中,用 #include 命令,可以将文件 stdio.h 的代码复制 到我们的代码中。

第四部分 整数 数据类型

1.C语言中 整型的类型有

char short int long long long

char short int long long long
字节 1 2 4 4 8

都是整数 问什么要分这么多类呢

算机通过晶体管的开关状态来记录数据。它们通常8个编为一组,我们称之为字节。而晶体管有开关
两种状态,一个字节有8个晶体管,因此一个字节可以拥有2的八次方个不同的状态。让每一种状态对应
一个数值,这样一个字节可以表示256个不同数值。



计算机存储资源是非常珍贵而
稀缺的。对存储资源,程序员可能恨不得把一块掰成两块来用。如果只想表达0100以内的数值,那么
一个字节就足够了,何必用两个字节来存储

2.使用sizeof 获得字节大小

#include<stdio.h>
int main() {
   
	
	char c = 4;
	short s = 12123;
	int i = 1212;
	long l = 5555;
	long long ll = 62;

	printf("char的字节%d\n",sizeof(c)); //1
	printf("short的字节%d\n", sizeof(s));//2
	printf("int的字节%d\n", sizeof(i));//4
	printf("long的字节%d\n", sizeof(l));//4
	printf("long long的字节%d\n", sizeof(ll));//8
	return 0;

}

int和long均占用4个字节。这并未违反C语言标准,C语言标准规
定高级别的类型取值范围不得小于低级别的类型,但是它们可以是一致的。

3.位 字节 范围

在很多语言中 其实就是计算中

使用二进制表示数据

100000000 ----这里面的每一个0或1 就是一个位 也称之为b 小b

字节

但是你可能听的很多的就是字节

字节其实就是8个 位组成的几个 数据段

10000000 ----这就是一个字节 一个字节=8位 1B=8b

范围

毕竟二进制 也是数值

一个 位 的范围就是 0-1 一个位只有两个状态 0 或1

那么一个字节 就是8个位二进制的数据

00010010 -----0->2^8 -1 0-255

为什么要减-1 因为 是从零开始的 012 就是三个 123 就是三个

那么 总共能放 256个 从0开始 到255 正好256 如果从1开始 到256正好256

无符号整形

int的范围 是四个字节 他的范围 4*8=32位 2^32次方个放数据的空间

但是int 是放不了的 因为 int 是会区分正负的

正负就需要一个位 那么就剩下31个位了

所以int 的范围 -2^31 --> +2^31-1

那么就有问题了 可不可以不要正负号 就是纯纯的正数 ?有的

那就是无符号整形

如果你确定你不会用到负数,那么请使用unsigned关键词。表明这个数据类型,是不带有符号位的。既 然不带有符号位了,那么原本留给符号位的那一个二进制位,可以用来表示数值

int a;  包含正负 -2^31   -->     +2^31-1
unsigned int a ; 只有正数  0 --->2^32-1


第五部分 浮点(小数)类型

我们来讨论一下类似于1.234567,0.00001,这类非整数的数据。

浮点类型:float

#include <stdio.h>
int main()
{
   
    float a = 1.234567;
    float b = 0.00001;
    float c = 365.12345;
    printf("%f\n", a);
    printf("%f\n", b);
    printf("%f\n", c);
    return 0;
}


标准规定,float类型必须至少能表示6位有效数字,并且取值范围至少是10^-37~10+37365.12345;  365.123可以精准  但是之后的比一定确认

浮点类型:double

#include <stdio.h>
int main()
{
   
    double a = 1.234567;
    double b = 0.00001;
    double c = 365.12345;
    printf("%f\n", a);
    printf("%f\n", b);
    printf("%f\n", c);
    return 0;
}365.12345 也是正确的了。
但是,请注意 double 类型也是有精度范围的。如果是更高精度的数据, double 也会出现误差。
我们日常的应用中,不会苛求一个精度完美的数值,是会允许存在一定误差范围的。但是,如果涉及高
精度领域的计算时,需要额外使用特殊的方法进行数值计算,以尽量减少误差。

字节大小

#include <stdio.h>
int main()
{
   
	float a = 1.234567;
	double b = 0.00001;
	double c = 365.12345;
	printf("%d\n", sizeof(a));//4
	print
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值