初识C语言3(简单了解、后面我还会详细的介绍)

每天坚持编程练习

初识C语言3(简单了解

1、选择语句

  • if语句

1、单分支
2、双分支
3、多分支

  • switch语句

2、循环语句

C语言中是如何实现循环的呢?
	(1)while 语句
	(2)for 语句
	(3)do…while 语句

3、scanf函数的一些解释

(1)scanf函数返回的是:实际读到的数据的个数
(2)scanf函数读取失败的时候,返回的是EOF
									EOF --> end of file  文件结束标志

4、函数

函数的特点就是简化代码,代码复用。
例如:

//写一个两个整型数加法的函数
	int Add(int a ,int b) // Add函数有两个参数 a、b
	{
		return a + b; //return是返回语句
	}
	
	int main() //主函数
	{
		//定义两个变量并初始化
		int x = 5;
		int y = 1;
		//定义一个返回值 ret,接收Add函数的返回值
		int ret = Add(x,y);
		//输出打印返回值ret
		printf("%d\n",ret);
		return 0;
	}

5、数组

要存储 1~10的数字,怎么存储?

C语言中给出了数组的定义:一组相同类型元素的集合。

(1)数组的定义:

定义一个整型数组,最多放10个元素 ,
int arr[10] = {1,2,3,4,5,6,7,8,9,10};

(2)数组的下标

C语言规定:数组的每个元素都有一个下标,下标是从0开始的。
数组可以通过下标来访问。

6、操作符

C语言提供了非常丰富的操作符,使得C语言使用起来非常地灵活。

先介绍一下占位符

占位符

占位符含义
% d十进制的整型
% c字符
% s字符串
% f打印 float类型的浮点数
% lf打印 double类型的浮点数
  • (1)算术操作符
操作符含义
+加法
-减法
*乘法
/除法
  • (2)移位操作符(跟二进制数有关)
操作符含义
>>右移操作符
<<左移操作符
  • (3)位操作符(跟二进制数有关,有三个)
操作符含义
1、&按位与
2、^按位异或
因为编辑器的原因第三个按位或在表格中显示不了

3、| (按位或)


  • (4)赋值操作符
操作符含义
=等于号
1、 a += ba = a + b
2、a -= ba = a - b
3、a *= ba = a * b
4、a /= ba = a / b
5、a &= ba = a & b
6、a ^= ba = a ^ b
7、a >>= ba = a >> b
8、a <<= ba = a << b
还是按位或操作符在表格显示不了
				9、a | = b     	 					 a  =  a | b

  • (5)单目操作符
单目操作符含义
逻辑取反操作
-负值
+正值
&取地址
sizeof操作数的类型长度(以字节为单位)
~对一个数的二进制按位取反 (二进制的操作符)
- -前置、后置 - -
++前置、后置 + +
*间接访问操作符(解引用操作符)
(类型)强制类型转换
  • (6)关系操作符
关系操作符含义
>大于号
<小于号
>=用于测试 左边是否大于或者等于右边
<=用于测试 左边是否小于或者等于右边
!=用于测试 “ 不相等 ”
==用于测试 " 相等 ",提示 该操作符 == 不能用于判断两个字符串是否相等
  • (7)逻辑操作符

      1、&&		逻辑与 
      2、||		逻辑或
      3、!		逻辑非
    
  • (8)条件操作符(三目操作符)
    exp 是表达式

      	exp1 ? exp2 : exp3
    
  • (9)逗号表达式
    exp 是表达式

      	exp1,exp2,exp3, …… expN
    
  • (10)下标引用、函数调用和结构成员

操作符含义
[ ]下标引用操作符
( )函数调用操作符
.(小数点)指针或者结构体会使用到

7、C语言中常见的关键字(32个)

	auto break case char const continue default do 
	double else enum extern float for goto if 
	int long register return short signed sizeof static
	struct switch typedef union unsigned void volatile while 

按照对应类别进行分类
数据类型:

auto char const  double  enum  float int  long  short 
signed(有符号的) unsigned(无符号的) 
static struct typedef union void

循环语句:

break continue do while  for  

分支语句:

switch case continue default  if else  goto  

函数: return

声明外部符号: extern

寄存器: register

计算所占内存的大小sizeof

其他volatile

8、在计算机上,数据都可以存储在哪里?

(从上到下,速度是越慢,造价是越低,空间越大)

常见的存储容器存储单位 一般情况
寄存器字节 (byte)
高速缓存器MB
内存条8G/16G
硬盘500G
网盘2T

9、内存的分布(简单了解)

(1)栈区:
局部变量、函数参数、临时的变量

特点:

进入作用域创建,出了作用域就释放

(2)堆区:

动态内存分配:malloc、calloc、realloc、free

(3)静态区:
静态变量、全局变量

特点: 放在静态区的数据创建后,直到程序结束才释放

10、局部变量和全局变量(简单了解)

局部变量无链接属性的,只有全局变量才谈链接属性。

11、头文件(.h)

里面存放的内容

  • 类型的定义
  • 头文件的包含
  • 函数的声明
  • ……

12、指针

(1)首先要理解内存
内存是电脑上特别重要的存储器,计算机中程序的运行都是在内存中 进行的。
所以为了有效的使用内存,就把内存划分成一个个小的内存单元,
每个内存单元的大小是1个字节
为了能够有效地访问到内存的每个单元,就给内存单元进行了编号,
这些编号被称为该 内存单元的地址,也是即指针
内存是计算机上的一种存储空间,大小一般是8G/16G
程序运行的时候会载入内存,
程序中如果有 数据需要存储,也会申请内存空间

(2)如何有效地使用内存呢?

内存是由一个一个内存单元组成的
并且给每个内存单元编上号 等价于
内存单元的编号地址 等价于指针
一个内存单元的大小是一个字节

(3)如果要访问一个内存单元,那内存单元的地址(指针)如何产生呢?
电脑的地址线有 32、64之分
以32根地址线为例:
32根地址线,地址线如果通上电:
下面是所有的二进制序列的可能(2^32 种可能)

		00000000 00000000 00000000 00000000
		00000000 00000000 00000000 00000001
		……
		01111111 111111111 1111111 11111111
		10000000 00000000 00000000 00000000
		……
		11111111 111111111 1111111 11111111
	-------------------------------------------------------------------------------------------------
			就可以作为 2^32 个地址
			就可以管理 2^32 个内存单元
			也就是 2^32 个字节的内存空间
			2^32 byte 换算后 为 4 GB

补充一下存储单位的换算

  		bit									比特位			
  		byte								 字节
  		1 byte = 8 bit 
  		1 KB = 1024 byte   	= 2^10 byte  
  		1 MB = 1024 KB		= 2^10 KB	
  		1 GB = 1024 MB		= 2^10 MB	

(4)指针变量的大小
指针变量是用来存放地址的!
地址:

32位机器上,是32个bit位
32位的机器上,指针变量存放的是 32个bit 的地址
32位机器上,指针变量的大小是4个字节

64位机器上,是 64个bit 位
64位的机器上,指针变量存放的是 64个bit 的地址
64位机器上,指针变量的大小是8个字节

13、各种进制的表示和转换

备注:
八进制数要以数字0开头,例如:15的8进制: 017
十六进制数要以0x或者0X开头 ,例如:15的16进制:0xF (里面的0数字0)

进制表示形式
二进制0、1 例如:0001 表示十进制数2^0*1 = 1
八进制0 ~ 7 例如:0 066 表示十进制数 (8^1)*6+ (8^0)*6=54
十进制0 ~ 9 例如:111表示十进制111
十六进制0 ~ 9、a ~ e 例如:15的16进制:0xF

上面的进制,只是数值的不同的表现形式而已
例子:

			十进制的 : 11
			11的二进制:1011
			11的八进制:13
			11的十六进制:b	
					
			int a = 11;							-- 十进制
			int a = 0xb;						-- 十六机制
			int a = 013;(八进制数字是以0开头)	-- 八进制


进制的转换计算
二进制 转 十六进制 :
4个二进制位 转成 十六进制
例如:0x 0012 ff40
(0x 代表是这是一个十六进制数、该数有八位数、每一位数都由四个二进制数组成) ( 以32位机器为例 )
内存单元的编号地址 等价于指针

14、结构体

结构体是C语言中特别重要的知识点,
结构体使得C语言有能力描述复杂类型。

比如描述学生,学生包含:名字+年龄+性别+学号 这几项信息。
这里只能使用结构体来描述了。
例如:

struct Stu
{
	char name[20];		//名字
	int age;			//年龄
	char sex;			//性别
	char id[15];		//学号
};						//这里的分号不能忘记哦!
//结构体的初始化:
		struct Stu
		{
			char name[20];
			char sex[5];
			int age;
		};		//这里的分号不能忘记哦!

15、C语言内置类型和自定义类型

内置类型:char short int long long long  flaot double

自定义类型:(1)结构体 (2)枚举 (3) 联合体

上面只是简单的介绍,后面我还会详细的介绍的!!!

坚持学习编程!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值