编程是星辰大海,想要在这片编程之海扬帆,首先要先造一支船,本篇博客带你初识C语言这片海洋,既是初识,也就是大概的领略一下,对C语言有个大概的了解,之后我们再回来仔细的学习每个知识点,咱们从宏观到微观,见证C语言 语法的奇妙。
本文使用的是 vs2019编译器。
注意,本文不包含如何配置变量,如何安装编译器,而是一些基础的语法。
hello world
c语言是从主函数的第一行开始执行的
所有C语言代码都得有main函数--入口
#include <stdio.h>// #include的意思是“包含”,包含stdio.h的文件
? ? ? ? ? ? ? ? ?//stdio -standard input output标准输入输出 (std- standard)(i- input)(o- output)。
?
//int就是整型的意思;main前面的int表示main函数调用以后返回一个整型值。
int main()//主函数-main,是程序的入口,main函数有且有一个。
{
printf("hello,cccc\n");//等于print function--打印函数, "\n" 表示输出后换行
//printf是库函数,是C语言本身提供给我们使用的函数。所以要调用 #include <stdio>
return 0;//return就是返回的意思,返回 整数int 0。
}
?
数据类型
char ? ? ? ? //字符数据类型
short ? ? ? //短整型
int ? ? ? ? //整型
long ? ? ? ? //长整型
long long ? //更长整型
float ? ? ? //单精度浮点数
double ? ? ? //双精度浮点数
char ? ? ? ? //1
short ? ? ? //2
int ? ? ? ? //4
long ? ? ? ? //4 or 8
long long ? //8
float ? ? ? //4
double ? ? ? //8
为什么出现这么多类型?
char ? ? ? ? //字符数据类型
short ? ? ? ?//短整型
int ? ? ? ? ?//整型
long ? ? ? ? //长整型
long long ? ?//更长整型
float ? ? ? ?//单精度浮点数
double ? ? ? //双精度浮点数
?//%c--打印字符
?//%d--打印整型
?//%f--打印浮点数字
?//%p--以地址的形式打印
?//%x--打印16进制数字
?//%lf---打印双精度浮点型数字,打印double类型最好使用这个 %lf
?//%s----打印字符串
? ?
//char-字符类型
int main()
{
? ?char ch ='A';//向内存申请了一块空间,空间的名称叫 ch,用这块空间来存放 “A”
? ?printf("%c\n",ch);// %c--打印字符格式的数据,打印结果为:A
? ?return 0;
}
?
//int--整型
int main()
{
? ?int age=20;
? ?printf("%d\n",age);// %d--打印整型十进制数据,打印结果为:20
? ?return 0;
}
?
//short int--短整型
?
//long--长整型
int mian()
{
? ?long num=100;
? ?printf("%d\n",num);打印结果也是:100
? ?return 0;
}
?
//float--单精度浮点类型
int main()
{
? ?float f = 2.0;
? ?printf("%f\n", f);//打印结果为:5.00000。float类型能包含五个小数点。
? ?return 0;
}
?
//double--双精度浮点类型
int main()
{
? ?double f = 3.14;
? ?printf("%f\n", f);//这里的打印可以用 %f,但是最好还是使用 %lf,表示使用双精度打印。
? ?return 0;
}
每种类型的大小是多少?
计算机中的单位 bit-比特位 < byte-字节 < kb < mb < gb < tb < pb
一个bit(比特位)只能存放一个 二进制0或1。所以学一下二进制和十进制的转换。
1byte=8bit
1kb=1024byte
1mb=1024kb
1tb=1024mb
1pb=1024mb
//计算各个类型占用空间
int main()
{ //sizeof这个函数是计算大小的函数,如下,可以测试以下数据类型和变量所占空间的大小。
? ?//sizeof 的单位是 字节 byte。
? ?printf("%d\n", sizeof(char));// 1byte
? ?printf("%d\n", sizeof(int));// 4byte
? ?printf("%d\n", sizeof(long));// 4byte,long可以是4 or 8byte.
? ?printf("%d\n", sizeof(short));// 2byte
? ?printf("%d\n", sizeof(long long));// 8byte
? ?printf("%d\n", sizeof(float));// 4byte
? ?printf("%d\n", sizeof(double));// 8byte
?
? ?short int age=20 //short对应两个字节,向内存申请两个字节,也就是16个bit位。能存放的数 2^16-1=65535。
? ? ? ?//如果数据不是很大推荐使用小整型,bit位越少,越能节省空间。
}//打印出来的这些数字就是“byte--字节”
?
#include <stdio.h>
int main()
{
? ?// ? 年龄 20
? ?short age = 20;//向内存申请2个字节=16bit位,用来存放20
? ?float weight = 95.6f;//可能系统会报错,因为系统把95.6当作双精度浮点归到double类型;在95.6后面加一个“f”,说明为单精度浮点即可解决。向系统申请4个字节,存放小数。
? ?
? //据C语言标准 sizeof(long) >= sizeof(int),根据平台不同,long可能是4或8.
? ?return 0;
}
变量、常量
常量:
生活中有些值是不会变的(圆周率,身份证号,血型,性别等等)
变量:
有些值是可以变的(年龄,体重,薪资等)
定义变量的办法
类型 + 变量名 + 赋值
int age=150;
float weight=45.5f;
char ch='w';
变量的分类
-
全局变量--定义在“代码块({})”之外的变量 -
局部变量--定义在“代码块({})之内的变量” -
局部变量名和全局变量名相同时,不会有冲突,但是局部变量优先。 建议全局变量和局部变量的名字不要相同,容易产生bug。 局部变量只能在自属局部的代码块{}中使用。
//计算各个类型占用空间
int main()
{ //sizeof这个函数是计算大小的函数,如下,可以测试以下数据类型和变量所占空间的大小。
? ?//sizeof 的单位是 字节 byte。
? ?printf("%d\n", sizeof(char));// 1byte
? ?printf("%d\n", sizeof(int));// 4byte
? ?printf("%d\n", sizeof(long));// 4byte,long可以是4 or 8byte.
? ?printf("%d\n", sizeof(short));// 2byte
? ?printf("%d\n", sizeof(long long));// 8byte
? ?printf("%d\n", sizeof(float));// 4byte
? ?printf("%d\n", sizeof(double));// 8byte
?
? ?short int age=20 //short对应两个字节,向内存申请两个字节,也就是16个bit位。能存放的数 2^16-1=65535。
? ? ? ?//如果数据不是很大推荐使用小整型,bit位越少,越能节省空间。
}//打印出来的这些数字就是“byte--字节”
?
#include <stdio.h>
int main()
{
? ?// ? 年龄 20
? ?short age = 20;//向内存申请2个字节=16bit位,用来存放20
? ?float weight = 95.6f;//可能系统会报错,因为系统把95.6当作双精度浮点归到double类型;在95.6后面加一个“f”,说明为单精度浮点即可解决。向系统申请4个字节,存放小数。
? ?
? //据C语言标准 sizeof(long) >= sizeof(int),根据平台不同,long可能是4或8.
? ?return 0;
}
?
|