helloworld和大小端
”HelloWorld”:
include<stdio.h>
int main()
{
printf(“helloworld\n”);
return 0;
}
(1).#include//头文件:其作用是包含我们所需要的库函数 printf();
include“max.h”//”“从自己写的文件中找到max.h
(2).对于 main 函数来说,是所有函数的入口,每一个可执行程序有且仅有一个 main 函数,返回值为 int,但是对于 main 函数来说,可以不写 return 0;其他自己实现的函数,必须如果有返回值,那么一定要写 return。
(3).printf()函数,分别打印各种类型是所需要的格式化符不一样。
(4).每一个程序在从源码到执行所需要的过程:
.c/.cpp 预编译——.i 编译——.s 汇编——.obj 链接——.exe
什么是变量,当计算机接收个变量后计算机干了什么?
例如:int a=10;计 算机会分配 4 个字节给变量存储 10,且是二进制。在定义变量的时候,变量必须先定义后使用,定义变量必须使用标识符,即字母数字下划线,且不能以数字开头。
ASCII码:
ASCII 的取值范围为什么是 0-127,因为为了提高代码的可移植性。
无符号取值范围是 0-255;有符号的取值范围-128-127。
两个取值范围的交集就是 0-127, 所以 ASCII 的取值范围正好在这个地方。
注:0-48 A-65 a-97
输入输出格式说明符
%f 输出 double 数据
%s 输出字符串
%x16 进制 X:字母大写
%08x 打印 8 位 16 进制
%c:输出字符
%i:可以自动将输入的八进制(或者十六进制)转换为十进制
%e:以指数形式输出浮点数,其中 e 分为大小写
%E:大写
%u:表示按unsigned int格式输入或输出数据
%o:以无符号八进制输出整数
大小端存放问题:
当我们把每一位都填好后发现,转换位 16 进制之后为:0x41480000.
而在我们计算机底下存储的却是:0x00004841.
大端——高尾端,小端——低尾端
小端:低地址放低数据:PC Inter
大端:低地址放高数据:手机,网络
使用指针判断大小端存放问题:
#include<stdio.h>
int main()
{
int a = 1;
char * p = (char*)&a;
if (*p == 1)
{
printf("little-endian");
}
else
{
printf("big-endian");
}
return 0;
}
如果小端方式中(i占至少两个字节的长度)则i所分配的内存最小地址那个字节中就存着1,其他字节是0;大端的话则1在i的最高地址字节处存放。char是一个字节,所以强制将char型量p指向i则p指向的一定是i的最低地址,那么就可以判断p中的值是不是1来确定是不是小端。
什么是算法
解决一个问题而采取的方法和步骤,就称为“算法”,对同一个问题,可以有不同的解题方法和步骤,为了有效地进行解题,不仅需要保证算法正确,还要考虑算法的质量,选择合适的算法。
重点 1:为什么不提倡用 scanf()
因为会造成在输入完成后敲回车无法输入进去
如果:scanf(“%d%d\n”,&a,&b)运行程序会发生什么?
重点 2:为什么要写成一个功能函数? 可以套用函数方便使用
求两个值得最大值?依赖求两个数的最大值求三个数的最大值?