热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

C语言学习总结——适用基础学习

目录一:C语言数据结构1.1数据结构1.2C语言两种注释方式1.3标识符1.4变量和常量常变量与符号常量:1.5数据类型基本数据类型字符

目录

一:C语言数据结构

1.1数据结构

1.2C语言两种注释方式

1.3标识符

1.4变量和常量

常变量与符号常量:

1.5数据类型

 基本数据类型

字符型数据

2C语言运算符

1.6格式化输出语句

 二。分支结构之语句

1.控制语句

2.1if语句

2.2用while和do...while语句实现

2.3for语句实现

 2.4用switch语句实现多分支选择结构

2.5结束语句

一:break语句

二:continue语句

2.6循环语句之多重循环

 三.用函数实现模块化程序设计

 3.1定义函数的方法

1.定义无参函数

2.定义有参函数

3.定义空函数

3.2调用函数

1.函数调用的形式

2.形参与实参

 3.函数的返回值




一:C语言数据结构


1.1数据结构

1.include是预处理命令用来提供信息,,stdio.h用来提供一个文件名,h是指头文件名

2.C程序是执行主函数源码,主函数main是C语言入口

int是main前面的主函数类型,在执行主函数之后会得到一个函数值,其值为整型

3花括号{}表示函数体,在{}输入函数

4.printf()是格式输出函数,在run中输出的信息

5.return 0是函数的返回值,函数数据不同返回值不同

6.\n是换行符即在输出"hello world"之后,显示屏上的光标移到下一行开头,光标位置称为输出位置开头

 注意:1.,一个说明或一个语句占一行

2.函数语句有明显缩进,用Tab键进行缩进

3.括号要成对写,删除要成对删除

4.每当一个可执行语句结束以后都要用分号;隔开

5.代码中的所有符号均为英文半角符号


1.2C语言两种注释方式

(1)以//开始单行注释。注释可以单独占一行,也可以在一行中其他内容的右侧。该注释从//开始,以换行符结束。该注释不能跨行,也只一行内容写不下,用多个单行注释

(2)以/*开始,以*/结束注释,该注释包含多行内容

两种形式


1.3标识符

C语言可以是英文字符,数字,下划线_组成的字符串,开头必须为字母或下划线

注:严格区分大小写

标识符是有意义的英文,不要使用中文


1.4变量和常量

常量含义:在执行过程中不可改变的量称为常量,常量分为直接常量和符号常量

直接常量:

   (1)整型常量:100,268

(2)实型常量:a十进制小数形式:123.658,751.725

                           b指数形式:12.4e5,-72.74e4

(3)字符常量:用单撇号括起来的字符:'A','3’,'&'

  (4)字符串常量:“I love zhuzhu!”

变量含义:是可以变化的量,每一个变量都有赋值,变量必须先定义,后使用,定义时区分变量名和变量值

变量一般形式:变量名。数据类型

常变量:方法在定义变量时,前面加上关键字const


常变量与符号常量:

 定义符号常量:#define指令为与编译指令,他只是用符号常量代表一个字符串,在预编译时进行字符替换,在预编译后,符号常量不存在

常变量:占用储存单元,有变量值


1.5数据类型

类型是对数据分配储存单元的安排,包括储存单元长度(占多少字节)以及数据储存形式。不同类型的分配不同长度和储存形式


 基本数据类型


数据的储存空间和值的范围
数据类型字节应用示例
int(基本整型)4用于存储整数int weight=45
char(字符型)1用于存储单个字符char me=M
float(单精度浮点型)4用于存储小数float x=1.3
double(双精度浮点型)8用于存储位数的多位小数double pi=3.1415

数据·常见的储存空间及值的范围

扩展八种整型数据类型

 注:int ,short int , long int根据编译的环境不同,所取范围也不同


字符型数据

1.字符与字符代码

 字母:大写字母A~Z,小写字母a~z

数字:0~9

专门符号:29个包括> ,= + - ; : "" ''~!$%^

空格符:空格,水平制表符(tab),垂直制表符,换行,换页(form feed)


2C语言运算符

1.基本运算符

(1)算数运算符(+ - * / %  ++  --)

&#xff08;2&#xff09;关系运算符&#xff08;> <  &#61;&#61;   >&#61;<&#61;   !&#61;)

(3)逻辑运算符&#xff08;&#xff01;&&  ||&#xff09;

&#xff08;4&#xff09;位运算符&#xff08;<< >>  ~| ^&)

  (5&#xff09;赋值运算符&#xff08;&#61;及其扩展赋值运算符&#xff09; 

&#xff08;6&#xff09;条件运算符&#xff08;&#xff1f;&#xff1a;&#xff09;

&#xff08;7&#xff09;逗号运算符&#xff08;&#xff0c;&#xff09;

&#xff08;8&#xff09;指针运算符&#xff08;*和&&#xff09;

&#xff08;9)求字节数运算符&#xff08;sizeof&#xff09;

&#xff08;10&#xff09;强制类型转换运算符&#xff08;&#xff08;类型&#xff09;&#xff09;

&#xff08;11&#xff09;成员运算符&#xff08;. ->)

  (12)下标运算符([ ])

  (13&#xff09;其他(如函数调用运算符&#xff09;

2.自增&#xff08;&#43;&#43;&#xff09;&#xff0c;自减&#xff08;--&#xff09;运算符

作用&#xff1a;使变量的值加或减1

&#43;&#43;i,--i(在使用i之前&#xff0c;先使用i的值加/减1&#xff09;

i&#43;&#43;,i--(在使用i之后&#xff0c;使i的值加/减1&#xff09;


1.6格式化输出语句

printf(输出格式符&#xff0c;输出项&#xff09;


 二。分支结构之语句


1.控制语句

(1)if()...else...(条件语句)

(2)for()...(循环语句)

(3)while()...(循环语句)

(4)do...while()(循环语句)

(5)continue(结束本次循环语句)

(6)break(中止执行switch或循环语句)

(7)switch(多分支选择语句)

(8)return(从函数返回语句)

(9)goto(转向语句,在结构化程序中基本不用goto语句)


2.1if语句

&#xff08;1&#xff09;if语句的一般形式
if(表达式&#xff09;

{

执行代码块

}

:if后面没有分号&#xff1b;直接加{}

if-else语句的三种形式&#xff1a;

1&#xff09;if&#xff08;表达式)  语句1                 &#xff08;没有else子句成分&#xff09;

2&#xff09;if&#xff08;表达式)                               &#xff08;有else子句成分&#xff09;

      语句1

else

   语句2

3&#xff09;if&#xff08;表达式1&#xff09;      语句1         &#xff08;在else部分又嵌套多层的if语句&#xff09;

    else if(表达式2&#xff09;   语句2

   else if&#xff08;表达式3)   语句3

语义是依次判断表达式的值&#xff0c;当出现某个值为真时&#xff0c;则执行对应代码块

&#xff1a;当某个条件为真时&#xff0c;则不会向下执行该分支结构的其他语句

 输出结果&#xff1a;

 


2.2用while和do...while语句实现

do...while实现一般形式

do

语句

while&#xff08;表达式&#xff09;
例&#xff1a;

int i&#61;1 ;                                           //设变量i的初始值为1

do                                                   //循环结构开始

{
printf("%d",i&#43;1) &#xff1b;                        //循环体&#xff0c;输出i的量&#xff0c;然后使i加1

while&#xff08;i<100);                               //当i小于或等于100时&#xff0c;继续执行循环体

注&#xff1a;while语句一般表现形式是关系表达式或逻辑表达式&#xff0c;当表达式的结果为假时结束循环

在循环体中改变循环变量值&#xff0c;否之一直执行&#xff08;进入死循环&#xff09;&#xff08;只要当循环条件为真&#xff1a;给定的条件成立&#xff0c;就执行循环体语句&#xff09;

循环体中包括一个以上的语句&#xff0c;则必须用{}括起来&#xff0c;组成复合语句

do...while语句先执行循环中的执行代码块&#xff0c;然后判断while语句中表达式是否为真。如果为真继续循环&#xff1b;如果为假&#xff0c;终止循环&#xff0c;do...while 一定要执行一次循环语句

例&#xff1a;while循环

输出结果

 例二&#xff1a;do...while实现形式

 输出形式&#xff1a;


2.3for语句实现

&#xff08;1&#xff09;for语句一般形式&#xff1a;

for&#xff08;表达式1&#xff1b;表达式2&#xff1b;表达式3&#xff09;

{

执行代码块

}

注&#xff1a;1.执行表达式1&#xff0c;对循环变量做初始化

2.判断表达式2&#xff0c;若其值为真&#xff08;非0&#xff09;&#xff0c;则执行for循环体中执行代码块&#xff0c;然后向下执行&#xff0c;如果其值为假&#xff08;0&#xff09;&#xff0c;则中止循环

3.执行表达式3&#xff0c;&#xff08;i&#43;&#43;&#xff09;对于循环变量进行操作语句

4.执行for循环中的循环代码&#xff0c;第一步初始化执行一步

5.循环结束&#xff0c;程序继续向下执行

语句可改写while的循环形式&#xff1a;

表达式1&#xff1b;

while表达式2

{

语句

表达式3

}

&#xff08;2)"表达式1”可以省略&#xff0c;即不设置初值&#xff0c;但表达式1后的分号不能省略&#xff0c;例&#xff1a;

for(;i<&#61;100;i&#43;&#43;)sum&#61;sum&#43;i&#xff1b;

&#xff08;3&#xff09;表达式2可以省略&#xff0c;即不用表达式2作为循环条件表达式&#xff0c;不设置和检查循环的条件。

for(i&#61;1;;i&#43;&#43;)sum&#61;sum&#43;i;

(4)表达式3可以省略

for(i&#61;1;i<&#61;100;)

{
sum&#61;sum&#43;i;

i&#43;&#43;;

}

注&#xff1a;1表达式1是一个或多个赋值语句&#xff0c;用来控制变量的初始值

2.表达式2是关系表达式&#xff0c;其决定什么时候退出循环

3.表达式3是循环变量的步进值&#xff0c;定义控制循环变量每一次循环循环后按什么方式来循环

4.循环结束&#xff0c;程序继续向下执行

例&#xff1a;for语句


 2.4用switch语句实现多分支选择结构

switch一般形式&#xff1a;

switch(表达式&#xff09;

{

case 常量1&#xff1a;语句1&#xff1b;

case常量2&#xff1a;语句2&#xff1b;

...........

case常量n&#xff1a;语句n&#xff1b;1

default&#xff1a;    语句n&#43;1

}

注&#xff1a;1.在case后的的各常量表达式不能相同&#xff0c;否则出现错误

2.在case子句后如果没有break&#xff1b;会一直往后执行&#xff0c;直到遇见break&#xff0c;才会跳出switch语句

3.switch后面的表达式只能是整型或字符类型

4.在case后允许多个语句&#xff0c;可以不用{}括起来

5.各case和default子句的先后顺序可以变动&#xff0c;不会影响程序结果

6.default子句可以不用省略

 输出函数&#xff1a;


2.5结束语句


一&#xff1a;break语句

1.在没有循环结构的情况下&#xff0c;break不能用在单独的if-else语句

2.在多层循环中&#xff0c;一个break语句只挑出当前循环&#xff08;break是跳出当前整个循环&#xff09;


二&#xff1a;continue语句

continue语句是结束本次循环&#xff0c;开始执行下一次循环


2.6循环语句之多重循环

多重循环在循环结构的循环中又出现循环结构&#xff0c;一般最多三层循环结构


 三.用函数实现模块化程序设计


 3.1定义函数的方法


1.定义无参函数

类型名 函数名()

{

函数体

}

类型名 函数名&#xff08;void&#xff09;

{

函数体

}


2.定义有参函数

类型名 函数名&#xff08;形式参数表列&#xff09;

{

函数体

}


3.定义空函数

类型名 函数名&#xff08;&#xff09;

{}

有参函数更为灵活&#xff0c;输出内容随n的改变而改变&#xff0c;只要在main函数中传递一个参数即可

无参函数的输出相对稳定&#xff0c;需要改动时还需要到自定义的方法内改变循环变量的值


3.2调用函数


1.函数调用的形式

函数调用一般形式&#xff1a;函数名&#xff08;[实参表列]&#xff09;

注&#xff1a;1.对无参函数的调用&#xff0c;可以将[]包含的省略

2.[]可以是常数&#xff0c;变量或构造其他数据及表达式&#xff0c;多个参数之间用逗号&#xff0c;分开


2.形参与实参

实际参数&#xff1a;在主调函数中调用一个函数&#xff0c;函数名后面括号中的参数&#xff0c;实参可以是常量&#xff0c;变量&#xff0c;表达式

形式参数:在定义函数时后面括号中的变量&#xff0c;调用该函数传入时的参数。

形参只有在被调用时才分配内存单元&#xff0c;在调用结束后&#xff0c;即刻释放所分配的内存单元&#xff0c;形参只有在函数内部有效

例&#xff1a;

 输出函数&#xff1a;


 3.函数的返回值

&#xff08;1&#xff09;函数返回值一般是通过函数中的return语句实现的&#xff0c;函数返回一般形式&#xff1a;return&#xff08;表达式&#xff09;或return 表达式。

&#xff08;2&#xff09;函数类型&#xff0c;函数有返回值&#xff0c;这个值属于某种类型&#xff0c;应当在定义函数时指定函数值的类型

例&#xff1a;

(3)在定义函数时指定的函数类型一般和return语句的表达式类型一致

输出&#xff1a;


3.3对被调用函数的声明和函数原型 


 1.函数声明的形式&#xff1a;

&#xff08;1&#xff09;函数类型 函数名&#xff08;参数类型1 参数名1&#xff0c;参数类型2 参数名2&#xff0c;参数类型3 参数名3&#xff0c;...参数类型n 参数名n&#xff09;

&#xff08;2&#xff09;函数类型 函数名&#xff08;参数类型1&#xff0c;参数类型2&#xff0c;....参数类型n&#xff09;


2.在一个函数中调用另一个函数需要的条件&#xff1a;

&#xff08;1&#xff09;被调用函数为已经定义的函数

&#xff08;2&#xff09;如果使用库函数&#xff0c;在文本开头#include指令调用有关库函数所需要的信息包含到文本中来&#xff1a;

#include

(3)如果使用用户自己定义的函数&#xff0c;而该函数的位置在调用的函数后面&#xff0c;应该在主调函数中对被调用的函数作声明。

例&#xff1a;输入两个实数&#xff0c;用一个函数求出他们的和

 输出结果


3.函数定义和声明的区别 

函数定义&#xff1a;指对函数功能确立&#xff0c;包括指定函数名&#xff0c;函数值类型&#xff0c;形参及其类型以及函数体&#xff0c;是一个完整独立的函数单位。

函数声明&#xff1a;把函数名字&#xff0c;函数类型以及形参的类型&#xff0c;个数和顺序通知编译下来&#xff0c;以便在函数调用时进行对照检查。


3.4函数的递归调用

1.函数递归调用含义&#xff1a;在调用一个函数过程中直接或间接地调用该函数本身

执行递归函数强调其自身&#xff0c;每调用一次就进入新的一层

例;用递归方法求n&#xff01;

公式表示&#xff1a;n&#xff01;&#61;n&#xff01;&#xff08;n&#61;0,1)

                 n!&#61;n(n-1)!   &#xff08;n>1)

 输出结果&#xff1a;

2.递归函数的特点

&#xff08;1&#xff09;每一级函数调用时都有自己的变量&#xff0c;但是函数代码不会得到复制

&#xff08;2&#xff09;每次调用都有一次返回

&#xff08;3&#xff09;递归函数中&#xff0c;位于递归调用前的语句和各级被调用函数具有相同的执行顺序

&#xff08;4&#xff09;递归函数中&#xff0c;位于递归调用后的语句的执行顺序和各个被调用函数的顺序相反

&#xff08;5&#xff09;递归函数中一定有中止语句


3.5数组作为函数参数


1.一维数组名作函数参数

数组元素&#xff0c;数组名可以做函数参数&#xff08;注&#xff1a;用数组元素作实参时&#xff0c;向形参变量传递的是数组元素的值。数组名作函数实参时&#xff0c;向形参传递的是数组元素的地址。

例&#xff1a;计算5人成绩的平均分

 输出函数&#xff1a;


 2.多维数组名作函数参数

可以用多维数组名作为函数的实参和形参&#xff0c;在被调用函数中对形参数组定义时可以指定每一维的大小。

多维数组格式&#xff1a;数组类型 数组名称[常量表达式1][常量表达式2]...[常量表达式n]&#xff0c;例&#xff1a;

int array[4][6];

注&#xff1a;

多维数组的初始化与一维数组的初始化两种情况&#xff1a;

1.数据类型 数组名称[常量表达式1][常量表达式2]…[常量表达式n] &#61; {{值1,…,值n},{值1,…,值n},…,{值1,…,值n}};
2.数据类型 数组名称[常量表达式1][常量表达式2]…[常量表达式n]; 数组名称[下标1][下标2]…[下标n] &#61; 值;

多维数组初始化要注意以下事项&#xff1a;

1.采用第一种始化时数组声明必须指定列的维数。mtianyan: 因为系统会根据数组中元素的总个数来分配空间&#xff0c;当知道元素总个数以及列的维数后&#xff0c;会直接计算出行的维数&#xff1b;
2.采用第二种初始化时数组声明必须同时指定行和列的维数。二维数组定义的时候&#xff0c;可以不指定行的数量&#xff0c;但是必须指定列的数量

例&#xff1a;有一个4*5的矩阵&#xff0c;求所有元素中最大值

&#xff1a;


 3.6局部变量和全局变量

定义变量的情况&#xff1a;

&#xff08;1&#xff09;在函数开头定义

&#xff08;2&#xff09;在函数内的复合语句内定义

&#xff08;3&#xff09;在函数外部定义

局部变量&#xff1a;也称为内部变量&#xff0c;局部变量在函数内作定义说明&#xff0c;其作用局限于函数内&#xff0c;在复合语句中也可以定义变量&#xff0c;其作用在复合语句的范围内

全局变量&#xff1a;也称为外部变量&#xff0c;它是在函数外部定义的变量&#xff0c;不属于哪一个函数&#xff0c;属于源程序文件。


局部变量&#xff1a;

变量的范围和作用&#xff1a;

注&#xff1a;a主函数中定义变量只在主函数中有效

b不同函数中可以使用同名的变量&#xff0c;他们代表不同的对象&#xff0c;互不干扰

c形式参数也是局部变量


 全局变量

全局变量程序段&#xff1a;


 3.7变量的存储方式和生存期


1.动态存储方式和静态存储方式

动态存储&#xff1a;

存储数据&#xff1a;1.&#xff09;函数形式参数。在调用时给形参分配储存空间

2.&#xff09;函数定义的没有用关键字static声明变量&#xff0c;即自动变量

3&#xff09;函数调用时的现场保护和返回地址

函数调用开始时分配储存空间&#xff0c;函数结束时释放空间。动态存储区中存放的变量是根据程序运行的需要而建立和释放的&#xff0c;通常包括&#xff1a;函数形式参数&#xff1b;自动变量&#xff1b;函数调用时的现场保护和返回地址等。

静态储存&#xff1a;在程序运行期间分配固定的存储空间的方式。静态存储区中存放了在整个程序执行过程中都存在的变量&#xff0c;如全局变量。


2.局部变量储存类别&#xff1a;

1.自动变量&#xff08;auto变量&#xff09;

在调用函数时&#xff0c;系统会给这些变量分配储存空间&#xff0c;在函数调用结束时会自动释放这些储存空间&#xff0c;例&#xff1a;

s

 2.静态局部变量&#xff08;static局部变量&#xff09;

用static修饰的为静态变量&#xff0c;如果定义在函数内部的&#xff0c;称之为静态局部变量&#xff1b;如果定义在函数外部&#xff0c;称之为静态外部变量。例&#xff1a;

输出结果&#xff1a;

  

3.寄存器变量&#xff08;register变量&#xff09;

register int f&#xff1b;  //定义f为寄存器变量


推荐阅读
  • Java SE从入门到放弃(三)的逻辑运算符详解
    本文详细介绍了Java SE中的逻辑运算符,包括逻辑运算符的操作和运算结果,以及与运算符的不同之处。通过代码演示,展示了逻辑运算符的使用方法和注意事项。文章以Java SE从入门到放弃(三)为背景,对逻辑运算符进行了深入的解析。 ... [详细]
  • 本文介绍了一个Java猜拳小游戏的代码,通过使用Scanner类获取用户输入的拳的数字,并随机生成计算机的拳,然后判断胜负。该游戏可以选择剪刀、石头、布三种拳,通过比较两者的拳来决定胜负。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • C语言注释工具及快捷键,删除C语言注释工具的实现思路
    本文介绍了C语言中注释的两种方式以及注释的作用,提供了删除C语言注释的工具实现思路,并分享了C语言中注释的快捷键操作方法。 ... [详细]
  • switch语句的一些用法及注意事项
    本文介绍了使用switch语句时的一些用法和注意事项,包括如何实现"fall through"、default语句的作用、在case语句中定义变量时可能出现的问题以及解决方法。同时也提到了C#严格控制switch分支不允许贯穿的规定。通过本文的介绍,读者可以更好地理解和使用switch语句。 ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • 本文介绍了iOS数据库Sqlite的SQL语句分类和常见约束关键字。SQL语句分为DDL、DML和DQL三种类型,其中DDL语句用于定义、删除和修改数据表,关键字包括create、drop和alter。常见约束关键字包括if not exists、if exists、primary key、autoincrement、not null和default。此外,还介绍了常见的数据库数据类型,包括integer、text和real。 ... [详细]
  • 本文讨论了如何使用IF函数从基于有限输入列表的有限输出列表中获取输出,并提出了是否有更快/更有效的执行代码的方法。作者希望了解是否有办法缩短代码,并从自我开发的角度来看是否有更好的方法。提供的代码可以按原样工作,但作者想知道是否有更好的方法来执行这样的任务。 ... [详细]
  • 本文介绍了深入浅出Linux设备驱动编程的重要性,以及两种加载和删除Linux内核模块的方法。通过一个内核模块的例子,展示了模块的编译和加载过程,并讨论了模块对内核大小的控制。深入理解Linux设备驱动编程对于开发者来说非常重要。 ... [详细]
  • Java各个版本新特性及Lambda表达式简介
    本文介绍了Java各个版本的新特性,包括接口的默认方法和Lambda表达式。接口的默认方法允许给接口添加非抽象的方法实现,使用default关键字。Lambda表达式提供了更简洁的语法,可以替代传统的匿名对象的方式。同时,还介绍了Lambda表达式在排序中的应用。 ... [详细]
  • This article discusses the efficiency of using char str[] and char *str and whether there is any reason to prefer one over the other. It explains the difference between the two and provides an example to illustrate their usage. ... [详细]
  • 本文讨论了编写可保护的代码的重要性,包括提高代码的可读性、可调试性和直观性。同时介绍了优化代码的方法,如代码格式化、解释函数和提炼函数等。还提到了一些常见的坏代码味道,如不规范的命名、重复代码、过长的函数和参数列表等。最后,介绍了如何处理数据泥团和进行函数重构,以提高代码质量和可维护性。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 本文探讨了C语言中指针的应用与价值,指针在C语言中具有灵活性和可变性,通过指针可以操作系统内存和控制外部I/O端口。文章介绍了指针变量和指针的指向变量的含义和用法,以及判断变量数据类型和指向变量或成员变量的类型的方法。还讨论了指针访问数组元素和下标法数组元素的等价关系,以及指针作为函数参数可以改变主调函数变量的值的特点。此外,文章还提到了指针在动态存储分配、链表创建和相关操作中的应用,以及类成员指针与外部变量的区分方法。通过本文的阐述,读者可以更好地理解和应用C语言中的指针。 ... [详细]
  • 本文介绍了在Java中检查字符串是否仅包含数字的方法,包括使用正则表达式的示例代码,并提供了测试案例进行验证。同时还解释了Java中的字符转义序列的使用。 ... [详细]
author-avatar
尹琢抵
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有