1、什么是C语言
2、第一个C语言程序
3、数据类型
4、常量与变量
常量
变量
定义变量的方法
变量的分类
变量的使用
变量的作用域和生命周期
5、字符串+转义字符+注释
字符串
转义字符
注释
前言:大家好,欢迎来到c语言世界,大家一起进步,一起成长,加油!我会先梳理出一个c语言 大概的框架,我们先一起把C语言的框架搭建起来,然后我们一起来深入的研究c语言更深层的本质。
一、什么是C语言
理解角度一:C语言是一门交流语言
我们人与人之间交流需要语言,同样我们与计算机交流也需要语言。
美国人与美国交流用的 是英语,中国人与中国人交流用的是汉语,日本人与人本人交流用的是日语。
那么,我们与计算 机进行交流,就可以用C语言进行交流。
理解角度二·:c语言更加擅长底层的开发。
什么是底层的开发?其实,在厂家生产计算的时候,首先需要把外部的硬件生产出来,其实硬件就是一个铁疙瘩,然后会给这个铁疙瘩安装 *** 作系统,比如Windows Linux系统 ,在 *** 作系统的驱动之下这个铁疙瘩,才会有用。
而 *** 作系统之上是软件层次,就是我们日常中常用的QQ,微信等等,我们把 *** 做系统之下的部分称为底层。
软件层
*** 作系统
驱动
*** 作系统
理解角度三:C语言的发展史。
我们都知道计算机的世界是二进制的世界,也就是只有0和1,在早期的时候,我们想通过计算机解决生活中问题,那编程输入的就是0和1的数字,000001111,11110000,10101010,01010101,鬼知道这啥意思?这样下去·,计算机就不能够全面普及。
后来,出现了汇编语言,就是如果 01010101这串数字代表+,那么汇编语言就是用Add来替换掉01010101这串数字,慢慢的就出现B语言,在慢慢的出现了C语言,语言的优化,其实有很多前辈都在研究,那么导致的结果就是会出现各种各样的C语言,那么所出现的结果,就是我们公司的c语言所研发的产品,不能在别家的公司跑不过去,我家的在你家的跑不过去,你家的在我家的跑不过去,所以,面临的问题就是:c语言必须要有一套标准,慢慢的就出现了,我们今天的所学C语言。
2、第一个C语言程序
#include
int main()
{
printf("hello world\n");
return 0;
}
理解:你肯定会问,为什么代码要这样写?
1.计算机在执行程序的时候,是一行一行往下运行的,所以我们得有一个程序得入口,而这个入口就是主函数。所以,逻辑上先要写:主函数的框架。
2.其次我们要明确我们这个程序的是要实现“Hello world”的打印,所以我们要用printf这个函数,因为这个函数的功能就是实现打印,又因为printf这个函数是库函数,我们在使用它是,需要先得向库函数声明一下,就向我们借别人的东西之前,我们先得向别人说一下嘛,所以要先写 #include 要注意的是,在定义变量的时,要养成初始化的习惯,为什么这样说?举个例子就明白了:假设我们要进一个新的房子中去,我们总的先把里面的垃圾数据清理干净
2.变量的分类?
变量分为局部变量和全局变量
局部变量
而生命周期是,在程序执行的时候,这个变量使用权限所占运行时间的长短
常量
字符串必须要注意的点:
1..字符串的结束标志是一个 \0 的转义字符
证明2:下面代码,打印结果是什么?
转义字符
理解:就是把原来的意思转变了 也可以对想删除或者没用、错误的代码直接注释。
欢迎分享,转载请注明来源:内存溢出
3、数据类型
计算机要解决生活中的问题,需要对数据进行存储,处理,那也就意味,必须要有存放这些数 据的空间,而这写空间就是,各种数据类型分类如下:
char //字符数据类型
short //短整型
int //整形
long //长整型
long long //更长的整形
float //单精度浮点数
double //双精度浮点数
注:C语言当中没有字符串类型
理解
1. 数据类型所占内存空间的大小
#include
为什么要有这么多的数据类型:为了更加丰富的表达生活中的各种值,比如字符 ,体重,薪水,等等
数据类型的使用
4、常量
1.变量的本质到底是什么?
int main()
{
char ch='w";
int weight 130;
int salary=15000;
double x=3,141592;
}
当我们定义出:int a=0;那一刻的时候 *** 作系统就会在内存条中就会分配出一块4个字节大小的空间,对数据进行数据的存储。int main()
{
int a=0;
return 0;
}
在主函数内部的变量
全局变量
int main()
{
int a=0;
}
在主函数的外部所定义的变量
3.作用域与生命周期
局部变量的作用域与生命周期 作用域?生命周期?作用域可以理解为这个变量只在这个范围才有使用的权限。int b=0;
int main()
{
return 0;
}
也就是说:第一个能够打印出来
第二个是打印不出来的
全局变量的作用域是整个工程,全局变量的生命周期是整个程序运行完的时间。#include
也就是说:两个地方都可以打印出来
#include
生活中的有些值是不变的(比如:圆周率,性别,身份z号码,血型等等)。
有些值是可变的(比如:年龄,体重,薪资)。
不变的值,C语言中用常量的概念来表示,变的值C语言中用变量来表示。
C语言中的常量分为以下以下几种:
1.字面常量
1000 3.14 6.60
2.const 修饰的常变量
int main()
{
const int Money=5;
return 0;
}
3.#define 定义的标识符常量
int main()
{
#define N 100;
return 0;
}
5、字符串+转义字符+注释
字符串
"hello world"
这种由双引号(Double Quote)引起来的一串字符称为字符串字面值(String Literal),或者简称字符串。
如何理证明\0是字符串的结束标志:
证明1:下面代码,打印结果是什么? 你可以自己去验证
#include
分析:
arr1 是一个字符串,它在内存中存储的是:‘h’ ‘e’ ‘l’ ‘l’ ‘0’ ‘\0’六个字符,和 arr3 一样,而’\0’是字符串结束的标志,所以以 %s 打印arr1 和arr3 的时候是hello,而arr2 的末尾没有’\0’,所以当它以 %s 去打印的时候编译器不会在字符’o’的位置停下,而是会继续往后打印,直到遇到’\0’才停止,但是我们并不知道arr2后面的内存空间存放的是什么数据,所以arr2打印出来的字符个数以及是何种字符我们是无法确定的。#include
补充:strlen:求字符串长度的库函数,返回’\0’以前的字符的个数,其头文件是 string.h
这里和上面一样,strlen 求字符串长度,遇到’\0’停止,所以arr1 和 arr3都是5,而arr2 末尾没有’\o’,而我们又不知道 arr2 后面的数据是什么,所以 arr2 打印出来的是随机值。
C语言转义字符表
需要掌握的常见住转义字符
\n 换行
\t 水平至表符
\r 回车
\xddd 把十六进制ddd这个数字转化为十进制那个数字所对应的ASCII的符号
\ddd 把八进制ddd这个数字转化为十进制那个数字所对应的ASCII的符号
\b 退格符
对字符串和转义字符的理解:
笔试真题:下面代码的输出结果是什么
答案 6 14#include
分析:
第一个我们不说,直接看第二个:c:\test\628\test.c,其中 \t \62 \t 被 \ 修饰转义,看作一个字符,所以一共是14个字符,可能有很多同学会把 \628 看作一个字符,从而得出答案13,但是请注意,八进制数的最大数是7,8不属于八进制的范畴,所以 \62 是一个字符,8 是另外一个字符
注释
注释的用法:可以对所写的程序进行解释说明,增强可读性。
注释有两种风格:
C语言风格的注释 : /xxxxxx/ ,注释方便,但不能嵌套注释。
C++风格的注释 : //xxxxxxxx ,可以注释一行也可以注释多行,也可以用 ctrl+k+c 与 ctrl+k+u 快速注释与取消注释,目前比较受欢迎。
评论列表(0条)