深入了解C语言

cef23a3da76c3e61b599bd7d6a2eda49.png

点击上方蓝字关注我,了解更多咨询

31ebcf90deed7040af1819ab94263c6c.png

c语言在编程语言中是偏底层的语言,像JavaScript,以及java。都是在c语言的基础上编译出来的。像操作系统:unix ,linux ,windows都是依靠c语言开发出来的,使用c语言可以开发windows应用程序。在c语言中不像在javascript中那么随意,在c中每写一条语句都必须要以 ; 进行结尾。

c语言的编码方式:

c语言的编码方式,在用char类型声明的窄字符会使用到Ascll码,用char类型声明的窄字符串和在Wchar_t声明的宽字符和宽字符串都不使用Ascll码,对于wchar_t声明的宽字符和宽字符串一般使用UTF-16和UTF-32进行编码的,对于char类型声明的字符串是根据编译器或者源文件的编码方式去编码的由于编译器的不同使用的编码也不同 。

数据类型:

c语言的数据类型大体分为以下四种:

  • 基本类型

    基本类型又分为下边这几种:

    • 单精度浮点型

      单精度浮点型用:long 进行表示在内存中占4字节

    • 双精度浮点型

      双精度浮点型用:short 进行表示在内存中占2字节

    • 长整型

      长整型用:long 进行表示在内存中占8字节

    • 短整型

      短整型用:short 进行表示在内存中占2字节

    • 整型

      整型用:int 进行表示在内存中占4字节

      整型又分为下这两种:

    • 浮点型

      浮点型又分下边这两种:

    • 字符型

      字符类型使用 :char 进行表示在内存中占1字节

      这种用char表明的字符类型还有一种名称叫窄字符。

      像这个char只能处理ASCLL码有的在字符处理不了中文以及其他语言的字符


      对于像除了Ascll码值以外的字符我们用 : wchar_t 表示它在内存中占的位置由编译器决定。由于这种类型在的头文件中所以我们要引入这个头文件,另外如果我们在单个字符前面加上大写字母L 例:char str = L'A';那么这个字符就会变为宽字符。还有宽字符的输出用不到下面那个通用的输出方法,我们要用到wchar.h头文件中的putwchar()或者wprintf()函数。

  • 枚举类型

  • void类型:

    在javascript中void是一个运算符 它用于计算它旁白的表达式,无论表达式是什么它总是返回的是undefined

    void在C语言中它是无类型的也就是没有类型的。

  • 复合类型

数据类型转化:

对于数据类型转换又分为以下两种:

  • 自动类型转换:

    自动类型的转换是不需要我们去干预的,比如在赋值运算中,右边表达式的值与左边的数据类型不同会自动将右边表达式转换为跟左边一样的类型。

  • 强制类型转换:

    强制类型转换是我们自己去进行的转换转换方式式这样的:(新类型) 表达式

对于自动和强制类型转换都只是根据需求时去进行的临时转换,它们不会实际的改变数据的类型。

声明变量:

c语言中声明变量是这样的 :数据类型 变量名=值

还可以 数据类型 变量名; 变量名=值

在c语言中声明变量时的变量名不仅仅表示它后边的值它还表示它的值在内存中的地址,      &变量名       这个&变量就是这个变量的值在内存中的地址。*变量名表示一个存储单元里的数据。

注:字符类型的变量的值要用 '' 包裹并且只能一个字符。c语言中变量可以重新赋值但是不能一个变量声明两次。(在js中的ES5的语法中用var声明的变量可以声明两次且不会报错,在ES6语法中变量不能声明两次否则会报错)

运算符:

运算符基本上和js中的差不多。

  • 基本运算符:

    加法,减法,除法,乘法,取模运算,自增,自减

  • 关系运算符:

    大于,等于,全等,大于等于,非等于

  • 逻辑运算符:

    且,或,非

输入和输出:

输入和输出分别使用以下这几个函数

  • 输入:scanf()

    这个scanf输入函数基本上跟printf差不多只不过一个是输入一个是输出,它里边也有格式控制符 。例:scanf("%d\n" , &a) 这个就是输入前边用""包裹是格式控制符,后边的是a是变量 & 是符号,意思是将输入的值赋值给变量a,这个函数是当用户输入完成时会将用户输入的值存进缓存区,当用户按下回车时才会读取


  • 字符以及字符串的输入使用以下这几个函数

    • 单个字符的输入使用:getchar()函数它用于输入单个字符,例:char isd=getchar(),这个函数也是当用户输入完成时会将用户输入的值存进缓存区当用户按下回车时才会读取。

    • 输入字符串用这个函数 : gets() 括号里写你需要将用户输入的值赋值给哪个变量。例:gets(asd) 这个表示将用户输入的值赋值给asd这个变量。虽然scanf()也能用于输入字符串只需写上格式控制符%S即可,但scanf遇到空格时会认为输入结束了,gets会将空格认为字符串的一部分。


  • 输出:printf()

    这个是格式化输出函数,在输出的函数中这个是最常用的,这个printf中格式控制符具体可以查看printf输出函数格式化控制符详解,例: print("%d\n",a) 这个括号里前边用""包裹的就是格式控制符,后边的是变量

判断语句:

c语言中的判断语句基本上和js中的差不多,

c语言中的判断语句大致有以下几种:

当设置判断的条件时就要用到上边的关系运算符,注意:在js中有boolean值ture和false在c语言中没有这个概念在c语言中0为false,非0为true。

  • if else

    例:

    if(条件){

    条件为真时执行这里的代码;
    复制代码

    }else{

    条件为假时执行这里的代码;

    }

  • if else if

    例:if(条件1){

    条件为真时执行这里的代码;

    }else if(条件2){

    当条件1为假时进行下一步判断条件2条件2为真时执行这里的代码;

    }

  • switch

    switch大多用于在多条件判断时

  • 例: switch(变量){

    case 1 :当变量等于1时执行这里的代码;break;
    case 2 :当变量等于2时执行这里的代码;break;
    case 3 :当变量等于3时执行这里的代码;break;
    case 4 :当变量等于4时执行这里的代码;break;
    case 5 :当变量等于5时执行这里的代码;break; 
    case 6 :当变量等于6时执行这里的代码;break;
    default:当变量不满足以上条件时执行这里的代码;break;

    }

    注:例子里边的变量可以是用户输入的变量 然后case是固定格式 case后边必须是整数或者整数的表达式,break必须写,break的意思是当变量满足某个时执行完代码后讲跳出判断不再继续向下判断,最后的default是可写可不写的default的意思是当变量不满足以上所有条件时将执行default那的代码。

  • 三元运算符,这个也是一种判断语句,主要用于一个条件的判断

    例: 条件?当条件满足时执行这里的代码 : 当条件不满足时执行这里的代码;

7227da68efa61327088962a6dafd05ed.png

END

*声明:本文于网络整理,版权归原作者所有,如来源信息有误或侵犯权益,请联系我们删除或授权事宜。

ae8bd94a3720997bd3bf4cc019d42ac0.png

442a661937c824a2bedc97f944045c30.gif

戳“阅读原文”我们一起进步

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/337932.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言函数注意点有哪些?

点击上方蓝字关注我,了解更多咨询构成C程序的基本单位是函数 C语言程序是由函数构成的,不存在过程。函数名代表该函数的入口地址C语言函数可以嵌套调用,例如:fun(fun(x)) ;于C语言中,子程序的…

C语言中的逻辑值

点击上方蓝字关注我&#xff0c;了解更多咨询C语言中的逻辑值1.C语言中的逻辑值2.逻辑运算符的运算规律3.逻辑值的举例说明一&#xff0e;C语言中的逻辑值逻辑值即逻辑运算操作的结果。在C语言中&#xff0c;逻辑运算包括关系运算与逻辑运算。关系运算包括大于(>),小于(<…

java page size_java ducument.pagesize.a2打印时用a4可以吗

展开全部概述Document是itext的基础&#xff0c;你可以添加文档数据(用户阅读62616964757a686964616fe58685e5aeb931333339666161的信息)和元数据(pdf内部使用的信息)。在创建document对象时&#xff0c;你可以定义page size&#xff0c;page color and page margins。构造函数…

C/C++语言重要语法之输入输出

点击上方蓝字关注我&#xff0c;了解更多咨询C语言是一种编译式的、通用的、大小写敏感的编程语言&#xff0c;完全支持面向对象开发。基本的输入输出cin和cout在C语言中&#xff0c;标准的键盘输入和屏幕输出功能分别使用scanf()和printf()两个函数实现。在C语言中&#xff0c…

mysql int number_Oracle/MySQL decimal/int/number 转字符串

有时客户需要流水数据&#xff0c;当导出为excel的时候&#xff0c;客户编号等很长数字的栏位&#xff0c;被excel变成科学记数法&#xff0c;无法正常查看。因此&#xff0c;需要将Oracle/MySQL中的decimal/int 转 varchar&#xff0c;这样在excel中就可以放心查看了。Oracle的…

C语言的“递归函数”这么难理解,为什么不丢弃它呢?

点击上方蓝字关注我&#xff0c;了解更多咨询变量就是在程序运行期间其值可以变化的量。每个变量都属于一种类型&#xff0c;每种类型都定义了变量的格式和行为。因此&#xff0c;一个变量应该有属于自己的名称&#xff0c;并且在内存中占有存储空间&#xff0c;其中&#xff0…

apache lucene_Apache Lucene的结构

apache lucene无可估量的高贵的Apache软件基金会&#xff08;Apache Software Foundation&#xff09;产生了许多巨大的产品&#xff08;Ant&#xff0c;CouchDB&#xff0c;Hadoop&#xff0c;JMeter&#xff0c;Maven&#xff0c;OpenOffice&#xff0c;Subversion等&#xf…

mysql 排序 过滤_【MYSQL】-3 排序与过滤

上周加入数据蛙二期培训&#xff0c;结束了孤独战斗的现状。断断续续自学了3个月(当然看了各种视频和各种书&#xff0c;一把辛酸泪。。。)&#xff0c;现在选择报班&#xff0c;主要还是觉得一个靠谱的组织和团队&#xff0c;可以极大缓解我学习过程中不时闪现的焦虑和无助&am…

构造函数 构造代码块_构造函数必须没有代码

构造函数 构造代码块构造函数中应完成多少工作&#xff1f; 在构造函数内部进行一些计算然后封装结果似乎是合理的。 这样&#xff0c;当对象方法需要结果时&#xff0c;我们将准备好它们。 听起来是个好方法&#xff1f; 不&#xff0c;这不对。 这是一个坏主意&#xff0c;原…

C语言按位逻辑运算符总结-与、或、非、异或

点击上方蓝字关注我&#xff0c;了解更多咨询C中有按位逻辑运算符&#xff1a;按位取反、按位与、按位或、按位异或。这4个运算符可以用于整型&#xff0c;包括char类型。按位操作针对每一个位进行操作&#xff0c;不影响左右两边的位。4个运算符的作用总结如下&#xff1a;一、…

C语言的本质——位运算

点击上方蓝字关注我&#xff0c;了解更多咨询位运算是指按二进制进行的运算。在系统软件中&#xff0c;常常需要处理二进制位的问题。C语言提供了6个位操作运算符。这些运算符只能用于整型操作数&#xff0c;即只能用于带符号或无符号的char,short,int与long类型。C语言提供的位…

Java创新型模式_java设计模式--创建型模式(一)

2016-04-24 10:10:34创建型模式&#xff1a;工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式注意&#xff1a;工厂模式可以分为三类&#xff1a; 1)简单工厂模式(Simple Factory) 2)工厂方法模式(Factory Method) 3)抽象工厂模式(Abstract Factory)这三种模式从上…

原来这就是C语言的基本结构—循环结构?!

点击上方蓝字关注我&#xff0c;了解更多咨询今天我们就着重说说循环结构。循环结构分为三种&#xff0c;分别是for、while、dowhile;我们首先说第一种&#xff1a;for循环..他的代码格式为&#xff1a;for(判断的数值初始化;判断条件;改变判断数值大小){循环语句块&#xff1b…

java count 在哪一类里_java 5线程中 Semaphore信号灯,CyclicBarrier类,CountDownLatch计数器以及Exchanger类使用...

先来讲解一下Semaphore信号灯的作用:可以维护当前访问自身的线程个数&#xff0c;并提供了同步机制&#xff0c;使用semaphore可以控制同时访问资源的线程个数例如&#xff0c;实现一个文件允许的并发访问数。请看下面的演示代码:1 public classSemaphoreTest2 {3 public stati…

C/C++入门易错点及常用小技巧

点击上方蓝字关注我&#xff0c;了解更多咨询C语言诞生至今已有30多个年头了&#xff0c;主要集中在需要运行效率比较高的行业&#xff0c;比如现在的游戏开发以及高效服务器等等。C学习难度比其它语言都要高&#xff0c;这是不可否认的&#xff0c;其学习难度主要在于它的复杂…

quasar_Quasar和Akka –比较

quasaractor模型是用于容错和高度可扩展系统的设计模式。 角色是独立的工作程序模块&#xff0c;它们仅通过消息传递与其他角色进行通信&#xff0c;可以与其他角色隔离而失败&#xff0c;但是可以监视其他角色的故障并在发生这种情况时采取一些恢复措施。 角色是简单&#xff…

什么是自定义函数?精简回答

点击上方蓝字关注我&#xff0c;了解更多咨询1、自定义函数是程序员根据所要完成的功能&#xff0c;自己写出的源代码实现该功能。2、自定义函数和库函数一样&#xff0c;具有函数名&#xff0c;返回值类型&#xff0c;和函数参数。示例1&#xff1a;写一个函数找出两整数的值。…

C++ 创建文件夹的几种方式汇总确定不来看看???

点击上方蓝字关注我&#xff0c;了解更多咨询1、使用 system() 调用 dos 命令。2、使用头文件 direct.h 中的 access 和 mkdir 函数。关于 direct.h 我觉得 维基百科 上介绍的不错3、调用 Windows API 函数。4、调用 MFC 封装好的接口函数。不推荐此方法&#xff0c;出错的话会…

java socket 传送进度_java-★-Socket文件上传/进度条

客户端代码&#xff1a;1、客户端运行程序&#xff1a;package wtb.khd;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.DataOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.OutputStream;import …

c语言中typedef和define的区别

点击上方蓝字关注我&#xff0c;了解更多咨询1、typedef仅限于为类型定义符号名称。define不仅可以为类型定义别名&#xff0c;还可以为数值定义别名。例如&#xff0c;可以将1定义为ONE。2、typedef由编译器解释&#xff0c;define语句由预编译器处理。实例#include <stdio…