初识C语言——C语言基础知识

大家好,我是Brant_zero

   以下是我学习C语言的一些过程,我会在此日常更新一些博客来记录我的C语言学习之路,一起共同进步,一起从初阶段开始学习C语言;

   首先,不妨我们来基本了解一下C语言的基本知识,来对这些基本知识有一些了解,对C语言有一个大概的认识,以后再对这些基础知识进行拓宽,进行更细致的了解;本篇文章先讲述前4节内容。

  • 什么是C语言;
  • 来做第一个C语言程序;
  • C语言的数据类型
  • 变量、常量

  • 字符串+转义字符+注释

  • 选择语句
  • 循环语句
  • 函数
  • 数组
  • 操作符
  • 常见关键字
  • define定义常量和宏
  • 指针
  • 结构体

一、什么是C语言

   c语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易 的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

   当然对C语言的介绍还有很多对C语言的产生和历史还有很多的故事,大家感兴趣可以去网上浏览 ,这里我就不过多赘述了。

二、第一个C语言程序

#include 
int main ()
{
    printf ("hello,world\n");
    return 0;
}

   以上就是第一个C语言程序,“hello,world” ,这段代码是初学者入门C语言的最先学习的一段代码。首先,这段代码很多很多新手在刚开始学习的时候并不知道他是什么意思,只是跟着老师或者书本上照敲而已,在次,我以我刚学C语言的角度来讲解一下这段代码。(当然,也可以先不了解这一小段代码的意思,用心背下来,等后面学到函数的时候就会理解的十分透彻);

   首先,第一行的#include 这段代码就已经难住了我,为什么要写这段代码啊,这段代码是什么意思啊(这就是我刚开始学代码的时候内心正式的写照),但是没关系,接下来我来给大家讲解一下我对这4行代码的理解,方便你理解记忆。

第一行的代码 #define

   这句代码是引用了一个头文件,表示下面我将使用printf函数在黑屏控制台打印输出的内容,就是打印出“hello,world”,所以这段代码十分重要,我们以后写的每段代码都要用到这个头文件

第二行的代码   int main() { }

   这句代码表示的是主函数的意思,main就代表主函数,这个函数返回类型是int,什么是返回类型,一个C语言程序必须要有一个主函数,所以我们写出一个C语言程序,主函数必不可少。这里我们要注意main的旁边有一个空的括号,表示无参数,或者参数为空,也就是main(void),这段代码也是可以的,可以更深的理解主函数,但是还是写main()简洁,可读性强,美观,哈哈

  对于这行代码我有四点想告诉大家:

1.main不要打成mian ;

2.记得打小括号;

3.花括号更是不能忘;

4.标点一定要是英文标点,不要用中文输入法打标点!!!

第三行代码   printf (“hello,world\n”);

   这句代码的意义在屏幕上打印输出hello,world,而\n的意思是换行的意思,大家可以试一试不加这个\n再运行代码,瞬间就会理解换行是什么意思了。

第四行代码  return 0;

   ​这句代码的意思就是函数返回0;上面说了,函数类型的int,但是参数是空的,所以返回个0就行了,其实也相当于什么也不返回。不理解也没有事情,在后面的学习中会对这段代码的影响越来越强,我们现在应该做的是记下这段代码,并在以后的学习中使用,而且不使用错。

三. 数据类型

   以下给大家看一下大家以后会用到的一些基本类型

char                                                  //字符数据类型

short                                                 //短整型

int                                                     //整形

long                                                  //长整型

long long                                          //更长的整形

float                                                  //单精度浮点数

double                                              //双精度浮点数

初识C语言——C语言基础知识_第1张图片

在这我们要先问出这几个问题:

为什么出现这么多的类型?

  1. 因为对于不同的对象,不同的数据类型更具有代表性
  2. 这么多的数据类型可以给我们未来的C语言使用带来便捷,更精准

比如名字,体重,薪资,我们可以用不同的数据类型来表述,这样更准确,也易于分类

名字:char ch【20】 = {“brant_zero”};

体重:int weight = 120;

薪水:int salary = 20000;

高薪:long long int High_salary= 30000000000;

使用long long int 而不使用int 是因为int占用4个字节数据范围是

-2147483648~2147483647[-2^31~2^31-1]装不下这个工资的数目~~

每种类型的大小是多少?

大家可以把这些带到自己的编译器低下测试下,看看跑出来的结果是什么;

 #include
int main()
{
  printf("%d\n", sizeof(char));
  printf("%d\n", sizeof(short));
  printf("%d\n", sizeof(int));
  printf("%d\n", sizeof(long));
  printf("%d\n", sizeof(long long));
  printf("%d\n", sizeof(float));
  printf("%d\n", sizeof(double));
  printf("%d\n", sizeof(long double));
  return 0;
}

四.常量、变量

常量就是不会变的量 比如血性、圆周率 等等、

变量就是会变的量 比如身高 体重 头发的数目 等等

在C语言中,不变的值就是常量,会变的值就是变量

①常量

C语言中的常量分为以下以下几种:

1.枚举常量

2.字面常量

3.const 修饰的常变量

4.#define 定义的标识符常量

1.枚举常量

#include 

//举例

enum Sex

{

MALE,

FEMALE,

SECRET

};

//枚举常量演示

  printf("%d\n", MALE);

  printf("%d\n", FEMALE);

  printf("%d\n", SECRET);

return 0;

}

括号中的MALE,FEMALE,SECRET就是枚举常量

其中enum是一个关键字,枚举关键字,我们会在以后学习关键字的时候学习到;

2.字面常量

  //字面常量演示

  3.14;//字面常量

  1000;//字面常量

     很普通的数字,字面常量

 3.define的标识符常量

  //#define的标识符常量 演示

#define MAX 100

  printf("max = %d\n", MAX);

define的意思就是定义 定义一个常量,即定义MAX是一个数值为100的常量;

4.  const 修饰的常变量

 //const 修饰的常变量


  const float pai = 3.14f;  //这里的pai是const修饰的常变量


  pai = 5.14                       ;//是不能直接修改的!

   const 是 constant 的缩写,意思是“恒定不变的”!它是定义只读变量的关键字,或者说 const 是定义常变量的关键字。 


  const 是 constant 的缩写,意思是“恒定不变的”!它是定义只读变量的关键字,或者说 const 是定义常变量的关键字。

  上面例子上的 pai 被称为 const 修饰的常变量, const 修饰的常变量在C语言中只是在语法层面限制了

   变量 pai 不能直接被改变,但是 pai 本质上还是一个变量的,所以叫常变量 

很多人在学习 const 的时候都会混淆它与 define 的区别。从功能上说它们确实很像,但它们又有明显的不同:

  1. define是预编译指令,而const是普通变量的定义。define定义的宏是在预处理阶段展开的,而const定义的只读变量是在编译运行阶段使用的。
  2. const定义的是变量,而define定义的是常量。define定义的宏在编译后就不存在了,它不占用内存,因为它不是变量,系统只会给变量分配内存。但const定义的常变量本质上仍然是一个变量,具有变量的基本属性,有类型、占用存储单元。可以说,常变量是有名字的不变量,而常量是没有名字的。有名字就便于在程序中被引用,所以从使用的角度看,除了不能作为数组的长度,用const定义的常变量具有宏的优点,而且使用更方便。所以编程时在使用const和define都可以的情况下尽量使用常变量来取代宏。
  3. const定义的是变量,而宏定义的是常量,所以const定义的对象有数据类型,而宏定义的对象没有数据类型。所以编译器可以对前者进行类型安全检查,而对后者只是机械地进行字符替换,没有类型安全检查。这样就很容易出问题,即“边际问题”或者说是“括号问题”。

确实显在聊这些有点早了,不懂也没有大的关系,我们目前只需要知道define和const两个定义的量不同就行了;

②变量:

变量的分类

全局变量

局部变量

#include 

int global = 2019;//全局变量

int main()
{
  int local = 2018;//局部变量

 //下面定义的global会不会有问题?

  int global = 2020;//局部变量

  printf("global = %d\n", global);

  return 0;
}

   上程序中的extern 是声明的意思,是对外部符号的声明,比如你在该程序下又创建了一个程序,你只需要在你另外的一个程序中声明这个全局变量,你就可以在你当前的程序中使用到这个变量,比如上图的global变量就可以,声明方式:(extern int global) 你就可以在前范围内使用了

变量的使用

#include 
int main()
{
  int num1 = 0;
 int num2 = 0;
  int sum = 0;
  printf("输入两个操作数:>");
  scanf("%d %d", &num1, &num2);
  sum = num1 + num2;
  printf("sum = %d\n", sum);
  return 0;
}

这里又有一个我们未见过的函数——scanf

   scnaf的意思是让我们输入两个数,来代替这两个变量的值,比如上图中&num1,&num2,就是在程序的黑屏控制台中我们输入两个数来替代原先num1、num2的值,是一个非常非常常用的函数,希望大家可以掌握;

变量的作用域和生命周期

作用域

  作用域是程序设计概念,通常来说一段程序代码中所用到的名字并不总是有效可用的

而限定这个名字的可用性的代码范围就是这个名字的作用域。

1. 局部变量的作用域是变量所在的局部范围。

2. 全局变量的作用域是整个工程。

生命周期

   变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段

1. 局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。

2. 全局变量的生命周期是:整个程序的生命周期。

   另外 static修饰的局部变量,它的生命周期也会被延长,会和程序的生命周期相同

而static 修饰的局部变量会被系统放置在静态变量区,不宜被改变

   以上就是本次文章的分享了,介绍了C语言的框架的几个概念,感兴趣的同学可以点波赞,给我带来一些写博客的动力,一起学习编程,一起进步。

   以上仅仅是我个人学习C语言的见解,本人不善表达、才疏学浅,如果有错误的话,请大家批评指正,我一定第一时间来修改。

我们下篇文章再见。

Brant_zero

20201/13

你可能感兴趣的:(C语言基础,c语言,c++)