C语言结构基础

本文详细介绍了C语言的基础知识,包括数据类型、常量、变量、基本运算、流程控制和函数的使用。讲解了#include、main函数、printf等核心概念,并阐述了编译和执行过程。此外,还涉及了汇编语言的基本操作,如mov、add等。文章深入浅出地讨论了数据存储,特别是补码的概念及其在减法运算中的作用。最后,提到了二进制、八进制和十六进制的转换及在程序中的应用。
摘要由CSDN通过智能技术生成

第一周学习的内容大多都是理论知识,收获不少,因为相对于其他教学都是直接教应用和代码程序。因此收获不少,在此总结自己学到的知识:

P1:

一,c语言结构:

include <stdio.h>
include 是导入一个文件
stdio.h 是一个标准库 i(input),o(output)是标准输入输出库 .h是头文件
< >表示导入系统文件 " "表示导入自定义文件

int main (){ }
int 是数据类型 整型 main程序的主函数 程序有且只有一个主函数
()里面表示函数的参数 里面可写void表示空
{ }:表示函数体 代码体 程序体

函数:如printf(“xxxx”,\n):
是stdio.h中系统提供的函数 表示在标准输出设备上打印字符串
\n是转义字符 表示换行

return 0
如果出现在其他函数中表示函数结束

二,编译和执行过程:

编译过程:
在这里插入图片描述
程序执行过程:
在这里插入图片描述

常见代码问题:
1,编辑时异常
2,编译时异常
3,运行时异常

三,汇编语言:
汇编语言:
mov 移动 add添加
push 压栈 pop 出栈 call 调用

简单计算:
__asm
{
mov a,10
mov b,20
mov eax,a
add eax,b
mov c,eax
}
//c=a+b=30

P2

一;变量和常量

数据类型的作用:编译器预算对象(变量)分配的内存空间大小
在这里插入图片描述
常量:在程序运行过程中 其值不能发生改变的量

将变量定义常量:
用const(c语言中不安全) 和 #define
格式:数据类型 常量名 = 值

标识符的要求:
1,不能使用系统关键字(结构体中会出问题)
2,允许使用字母,数字,下划线。如 int a_123 // int _a123
3,不允许数字开头
4,区分大小写
5,见名知义

二,整型,字符型和浮点型

忽略警告:
#define _CRT_SECURE_NO_WARNINGS (放在第一行)
#program warning(disable:4996) (放在任意位置)

sizeof(数据类型):计算数据在内存中占的字节(BYTE)大小
无头文件,不是函数,返回值为size_t
计算操作:
unsigned int len = sizeof(数据类型/变量名)
printf(“%d”,sizeof(x))

整形:4字节 = 32bit
短整型:2字节
长整型:4 字节
长长整型:8字节
长整型在Linux 64位中为8字节
short<=int<=long<long long

有符号 数的最高位为符号位,0为正数,1为负数
无符号 数最高位不是符号位,而就是数的一部分,无符号数不可能是负数

字符型:
char:1字节
ASCII码:大小写相差32 A=65 a=97 0=48

转义字符:
\a警报 \b退格,将当前位置移到前一列
\f换页,将当前位置移到下一页开头
\n换行 \r回车,将当前位置移到本行开头
\t水平制表(8空格 对齐) \v垂直指标

浮点型:
float单精度 double双精度

sezeof(float)=4 sezeof(double)=8
浮点型存储格式:符号位 指数位 小数位

占位符%p:输出一个变量的内存地址编号(无符号十六进制整型数据)

三,进制

二进制0-1
八进制0-7
十六进制0-9 10-15(a-f A-F)

printf("%x\n",a);//%x 输出一个16进制的数 
printf("%X\n",a);
printf("%o\n",a);//%o  输出一个2进制的数字 

定义八进制数据 :以0开头
int c=0123;
定义十六进制数据:以0x开头
int d=0x123;

计算机编译不可以直接编译二进制

四,数据存储:
计算机系统中,数据用补码存储

char ch=10
原码:0000 1010
反码(正数相同,负数中除了符号位,其他与原码相反):0000 1010
补码(正数相同,负数中 是反码加1 ):0000 1010

则ch=-10
0000 1010
1111 0101
1111 0110

补码作用:
统一了零的编码——0在计算机存储形式是0000 0000 而不存在-0:1000 0000
符号位和其他位统一处理
减法运算转换为加法运算
两个用补码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃

补码运算:
76-32=76+(-32):
76的补码: 0100 1100
-32的补码:1110 0000
求和补码 :1 0010 1100
即是44

总结如上。
继续努力!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值