c语言(从入门到放弃?NONONO,LET我们一步一步刨析,会发现其中蕴含的乐趣)

简介: c语言(从入门到放弃?NONONO,LET我们一步一步刨析,会发现其中蕴含的乐趣)

 💭一  ,让我们看第一个C语言代码

#include <stdio.h>
int main()
{
  printf("hello world\n");
  printf("hello,c语言\n");
  return 0;
}

       切记main函数为程序的入口,一个工程中main函数只能有一个,从main函数进入后,完成内部操作,直到最后返回零,结束该程序的运行。

       💭二  ,数据类型

       

        📖1,基本类型

       📜基本类型就是c语言中的基础类型,包括整型,字符型,浮点型,枚举类型,今天我们就谈谈c语言的基本类型其详细介绍及如何应用。

char    //字符数据类型
short   //
int    //整型
long    //长整型
long long    //更长的整型
float    //单精度浮点型
double    //双精度浮点型

💬为什么会出现这么多类型呢?每种类型的大小(单位是字节)是多少呢?

💬我们可以通过sizeof函数来探寻

#include <stdio.h>
int main()
{
    printf("%d\n", sizeof(char));    //1
    printf("%d\n", sizeof(short));    //2
    printf("%d\n", sizeof(int));    //4
    printf("%d\n", sizeof(long));    //4
    printf("%d\n", sizeof(long long));    //8
    printf("%d\n", sizeof(float));    //4
    printf("%d\n", sizeof(double));    //8
    return 0;
}

每种不同类型的类型占用不同的字节,有了这么多变量,我们可以更加生动地表示生活中的各种数值。

📝2.定义变量的方法

       变量类型加变量名!

例如

       🏅Int age = 150;

       🏅float weight = 45.5f;💡这里f可以不加,只是表示weight s是float 类型的变量

       🏅char ch = 'w';

📝3.变量的命名

       🌲①只能由字母(包括大写和小写),数字和下划线(_)组成

       🌲②不能以数字开头

       🌲③长度不能超过63个字符

       🌲④变量名中区分大小写

       🌲⑤变量名不能使用关键字


📖一,字符型变量

       字符型变量是用来存储字符常量的变量,将一个字符常量储存在字符变量中,其实是将该字符的ASCLL码值储存到内存单元中。

       字符类型在内存空间中占用一个字节,取值范围是-128~127.

       💬说明

       字符数据在内存中存储的是字符的ASCLL码值,是一个无符号整数,其形式与整型的储存形式一样,因此C语言允许字符型数据与整形数据之间通用。

       ✅举一个例子

#include <stdio.h>
int main()
{
  char Char1;
  char Char2;
  Char1 = 'a';
  Char2 = 97;
  printf("%c\n", Char1);  //输出结果为a
  printf("%c\n", Char2);  //输出结果为a
  return 0;
}

       💡定义两个字符类型变量,为两个变量赋值时,一个赋值为 'a',一个赋值为97,在用%c(%c打印字符常量)打印时,输出结果都为'a'。说明字符型数据和整型数据之间是通用的。

       📖二,整型常量

       💡因为上边char类型储存的也是整型数据,所以偶尔也可把char类型看作整形,如同他的名字,整型变量是用来存储整型数值的变量,其基本类型是Int,在此基础上加上一些符号进行修饰,例如short或long等。

       1,有符号基本整型

       有符号基本整型是指signed int 型,编写时通常将signed省略,有符号整型在内存中占4个字节,取值范围是-2147483648~2147483647.

注意:在编写程序时,所有用到的变量的定义应该在变量的赋值之前,否则就会产生错误

      2,无符号基本整形

       关键字是unsigned int,即无符号的意思,在内存中也是占4个字节,取值范围是0~4294967295.

       3,有符号短整型

        有符号短整型的关键字是signed short int,在编写时signed和int都可以省略,直接写为short,他在内存中所占的字节是两个字节,取值范围是-32768~32767.

       4,无符号短整型

       无符号短整型的关键字是unsigned short int,在编写时int可以省略,写为unsigned short,他在内存中所占的字节是两个字节,取值范围是0~65535.

       5,有符号长整型

       有符号短整型的关键字是signed long int,在编写时signed和int都可以省略,直接写为long,他在内存中所占的字节是4个字节,取值范围是-2147483648~2147483647.

       6,无符号长整型

       无符号长整型的关键字是unsigned long int,其中关键字int可以省略,无符号长整型在内存中占4个字节,取值范围是0~4294967295.

       📖三,浮点型变量

浮点型变量也称为实型变量,浮点型变量是由整数和小数两部分组成的,根据其精度分为单精度类型,双精度类型和长双精度类型。

       📘1,单精度类型

       🐲单精度类型的关键字是float,他在内存中占4个字节,取值范围是-3.4*10^-38~3.4*10^38.

这里举一个例子,定义一个单精度类型变量,为其赋值为2.34

int main()
{
  float x = 0;
  x = 2.34;
  printf("%f\n", x);
  return 0;
}//输出结果为2.340000

       🐲这里输出结果为2.340000,我们如何只保留两位小数呢,只需要在 f 前加上 .2即可,即printf("%.2f\n",x);  即可,更改代码后发现输出结果确实为2.34 。

       📘2,双精度浮点型

       双精度浮点型的关键字是double,他在内存中占8个字节,取值范围是-1.7*10^108~1.7*10^38.

      📘 3,长双精度浮点型

       🐞长双精度浮点型的关键字是 long double,他在内存中也占8个字节,取值范围与double一样,区别在于

       🔥1 double类型为C++原始类型,所有 编译器 均支持,而long double是C99规范增加的新类型,只有支持C99的编译器才支持long double;

       🔥2 占用大小不同,double占8个字节,long double根据编译器实现不同,有占用8,10,12字节和16字节四种; 在long double用8字节实现时,long double 和double没有其它区别。


      📜 接下来又是一大模块,来讲一讲所谓变量的储存类别

       👉 📖问题引入:在程序运行中我们经常使用到变量,在程序中可以选择不同储存形式,分为静态存储和动态存储,可通过储存类型修饰符告诉编译器需要储存什么样的类型变量,具体有auto(自动(通常省略)),静态(static),寄存器(register)和外部(extern)。


静态存储和动态存储的区别

       ✅根据变量的产生 时间 区分,静态存储是指程序运行时为其分配固定的存储空间,动态存储则是该程序运行期间根据需要动态的分配空间。

void ADD()
{
  int j = 0;
  printf("%d", j);
  j = j+1;
}
int main()
{
  int i = 0;
  for (i = 0; i < 9; i++)
  {
    ADD();
  }
  return 0;
}

💡 思路    :我们想打印从0开始,打印一次加1,然而运行代码发现输出结果是九个0;为什么会发生这种情况呢。

📑运行结果分析:     j 是一个auto的变量,在程序运行到ADD函数时,创建一个变量 j 为0,打印0之后加1变成1,然而出了ADD函数,这个变量 j 就销毁了,再次进入后,重新生成一个 j ,其值仍然为零,所以打印的仍然是零。这就是动态变量。

static变量

       static变量,static变量在修饰不同类型变量以及修饰函数等有不同的作用,这里我们就讲一讲static修饰局部变量会发生什么。

       static变量和auto变量是相对而言的,尽管两者作用域都仅限于声明变量的函数中,但在执行期间,stasic变量将保持它的值,且初始化只在第一次具有作用,多说无益,直接上代码,看一看static和auto如何是相对的

💬 代码演示:

void ADD()
{
  static int j = 0;
  printf("%d", j);
  j = j+1;
}
int main()
{
  int i = 0;
  for (i = 0; i < 9; i++)
  {
    ADD();
  }
  return 0;
}

       📑运行结果:这里与上面代码不同的就是在ADD函数中将 j 的变量前加了一个static。此时运行的结果就变为0 1 2 3 4 5 6 7 8.

       📜分析:这次出ADD函数后,变量 J 没有销毁,所以才会保持上一次运行后的值,然后依次加上一。

register变量

       ⭐register变量称为寄存器储存类型,通过register变量,程序员可以将某个        局部变量指定存放在寄存器中,而不是储存在内存中,这样可以提高程序的运行速度。然而这只是程序员的主观意愿,实际上编辑器可以忽略register对变量的修饰,

extern变量

       ⭐extern变量称为外部储存变量,extern声明了将要使用但并没有定义的外部变量。

通俗来讲,一个工程通常是由多文件组成的,这些源代码文件会分别编译,然后链接成一个可执行代码模块。

这样说着可能不太清晰,我们.......

💬 代码演示:

👑说到这里,本篇文章就结束啦,欢迎大家讨论留言哦!👑

😘支持作者的友友可以一键三连哦!😘

❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️

目录
相关文章
|
2月前
|
安全 编译器 C语言
C++入门1——从C语言到C++的过渡
C++入门1——从C语言到C++的过渡
68 2
|
18天前
|
存储 NoSQL 编译器
【C语言】指针的神秘探险:从入门到精通的奇幻之旅 !
指针是一个变量,它存储另一个变量的内存地址。换句话说,指针“指向”存储在内存中的某个数据。
71 3
【C语言】指针的神秘探险:从入门到精通的奇幻之旅 !
|
2月前
|
存储 Java 编译器
初识C语言1——C语言入门介绍
初识C语言1——C语言入门介绍
35 1
|
2月前
|
C语言
回溯入门题,数据所有排列方式(c语言)
回溯入门题,数据所有排列方式(c语言)
|
4月前
|
C语言
C语言------程设设计入门
这篇文章是C语言程序设计的入门教程,涵盖了C程序的实现过程、VC集成开发环境的使用、基本数据类型的使用、格式控制字符的作用,以及通过示例代码演示了如何使用printf()函数输出不同类型的数据。
C语言------程设设计入门
|
5月前
|
存储 Java C语言
【C语言入门】初识C语言:掌握编程的基石
【C语言入门】初识C语言:掌握编程的基石
71 4
【C语言入门】初识C语言:掌握编程的基石
|
4月前
|
NoSQL Java 编译器
C语言从入门到精通该怎样学?
持续学习与实践:编程是一门需要不断学习和实践的技能,要保持对新技术和新知识的敏感性,并持续进行编程实践。
66 1
|
5月前
|
存储 Java 程序员
【C语言入门】C语言入门:探索编程世界的基础概念
【C语言入门】C语言入门:探索编程世界的基础概念
119 2
|
5月前
|
前端开发 C语言 C++
C语言入门02---环境搭建
C语言入门02---环境搭建
|
6月前
|
存储 Web App开发 算法
c语言的简单入门
熟悉c语言(简单入门)