当前位置:首页 » 编程语言 » c语言基本概念

c语言基本概念

发布时间: 2024-05-16 21:44:16

‘壹’ 学习c语言需要掌握哪些基本知识

1.入门程序

#include <stdio.h>
int main()
{
printf("Hello World!");
return 0;
}

2.数据类型

数据类型:

1.基本数据类型:

1.1. 整型:int 4个字节

1.2. 字符型:char 1个字节

1.3. 实型(浮点型)

  • 1.3.1.单精度型:float 4个字节

  • 1.3.2.双精度型:double 8个字节

  • 2.构造类型:

    2.1.枚举类型

    2.2.数组类型

    2.3.结构体类型

    2.4.共用体类型

    3.指针类型:

    4.空类型:

    3.格式化输出语句

  • %d:十进制整数;

  • %c:单个字符;

  • %s:字符串;

  • %f:6位小数;

  • #include <stdio.h>

  • int main()

  • {

  • int age = 18;

  • float height = 1.85;

  • char unit = 'm';

  • printf("小明今年%d岁 ", age);

  • printf("小明身高%f%c ", height, unit);

  • printf("小明现在在慕课网上学习IT技术 ");

  • return 0;

  • }

  • 学好C++才是入职大厂的敲门砖! 当年要是有这课,我的C++也不至于这样

    已失效

    4.常量

    值不发生改变的量成为常量;

    定义字符常量(注意后面没有;)

  • #include <stdio.h>

  • #define POCKETMONEY 10 //定义常量及常量值

  • int main()

  • {

  • printf("小明今天又得到%d元零花钱 ", POCKETMONEY);

  • return 0;

  • }

  • 5.运算符

    5.1.算数运算符:+,-,*,/,%,++,--;前++/--,先运算,再取值.后++/--,先取值,再运算;

    5.2.赋值运算符:

    5.3.关系运算符;

    5.4.逻辑运算符;

    5.5.三目运算符:

  • 表达式1 ? 表达式2 : 表达式3;

  • 6.水仙花数计算

    输出所有三位数的水仙花数字

    所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数,如:153就是一个水仙花数,153=111+555+333。

  • #include <stdio.h>


  • int main()

  • {

  • //定义三位数num,个位数sd,十位数td,百位数hd

  • int num, sd, td, hd;

  • //循环所有三位数

  • for( num=100 ; num<1000 ; num++ )

  • {

  • //获取三位数字num百位上的数字

  • hd = num/100 ;

  • //获取三位数字num十位上的数字

  • td = num/10%10 ;

  • //获取三位数字num个位上的数字

  • sd = num%10 ;

  • //水仙花数的条件是什么?

  • if(num ==hd*hd*hd+td*td*td+sd*sd*sd )

  • {

  • printf("水仙花数字:%d ", num);

  • }

  • }

  • return 0;

  • }

  • 7.打印正三角形的*

  • #include <stdio.h>

  • int main()

  • {

  • int i, j, k;

  • for(i=1; i<5; i++)

  • {

  • /* 观察每行的空格数量,补全循环条件 */

  • for( j=i ; j<5 ; j++ )

  • {

  • printf(" "); //输出空格

  • }

  • /* 观察每行*号的数量,补全循环条件 */

  • for( k=0 ; k<2*i-1 ; k++ )

  • {

  • printf("*"); //每行输出的*号

  • }

  • printf(" "); //每次循环换行

  • }

  • return 0;

  • }

  • 8.臭名远扬的goto语句

    很少使用

  • #include <stdio.h>

  • int main()

  • {

  • int sum = 0;

  • int i;

  • for(i=1; i<=10; i++)

  • {

  • printf("%d ", i);

  • if(i==3){

  • goto LOOP;//满足条件就执行goto语句

  • }

  • }

  • //执行goto

  • LOOP:printf("结束for循环了...."); //请选择合适位置添加标识符

  • return 0;

  • }

  • 9.形参与实参

    形参:形参是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传入的参数;

    实参:实参是在调用时传递该函数的参数。

    函数的形参和实参具有以下特点:

  • 形参只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只有在函数内部有效。函数调用结束返回主调函数后则不能再使用该形参变量。

  • 实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值,以便把这些值传送给形参。因此应预先用赋值等办法使实参获得确定值。

  • 在参数传递时,实参和形参在数量上,类型上,顺序上应严格一致,否则会发生类型不匹配”的错误。

  • 10.函数返回值注意

    注意:void函数中可以有执行代码块,但是不能有返回值,另void函数中如果有return语句,该语句只能起到结束函数运行的功能。其格式为:return;

    11.递归

  • #include <stdio.h>


  • int getPeachNumber(int n) //这里要定义n,要不编译器会报错!

  • {

  • int num;

  • if(n==10)

  • {

  • return 1;

  • }

  • else

  • {

  • num = (getPeachNumber(n+1)+1)*2;

  • printf("第%d天所剩桃子%d个 ", n, num);

  • }

  • return num;

  • }

  • int main()

  • {

  • int num = getPeachNumber(1);

  • printf("猴子第一天摘了:%d个桃子。 ", num);

  • return 0;

  • }

  • 12.变量存储类别 !

    12.1.生存周期划分存储方式

    C语言根据变量的生存周期来划分,可以分为静态存储方式和动态存储方式。

    静态存储方式:是指在程序运行期间分配固定的存储空间的方式。静态存储区中存放了在整个程序执行过程中都存在的变量,如全局变量。

    动态存储方式:是指在程序运行期间根据需要进行动态的分配存储空间的方式。动态存储区中存放的变量是根据程序运行的需要而建立和释放的,通常包括:函数形式参数;自动变量;函数调用时的现场保护和返回地址等。

    12.2.存储类型划分

    C语言中存储类别又分为四类:自动(auto)、静态(static)、寄存器的(register)和外部的(extern) ;

  • 用关键字auto定义的变量为自动变量,auto可以省略,auto不写则隐含定为“自动存储类别”,属于动态存储方式。

  • 用static修饰的为静态变量,如果定义在函数内部的,称之为静态局部变量;如果定义在函数外部,称之为静态外部变量。

  • 注意:静态局部变量属于静态存储类别,在静态存储区内分配存储单元,在程序整个运行期间都不释放;静态局部变量在编译时赋初值,即只赋初值一次;如果在定义局部变量时不赋初值的话,则对静态局部变量来说,编译时自动赋初值0(对数值型变量)或空字符(对字符变量)

  • 为了提高效率,C语言允许将局部变量的值放在CPU中的寄存器中,这种变量叫“寄存器变量”,用关键字register作声明。

  • 注意:只有局部自动变量和形式参数可以作为寄存器变量;一个计算机系统中的寄存器数目有限,不能定义任意多个寄存器变量;局部静态变量不能定义为寄存器变量。

  • 用extern声明的的变量是外部变量,外部变量的意义是某函数可以调用在该函数之后定义的变量。

  • #includ <stdio.h>

  • //来源公众号:C语言与CPP编程

  • int main()

  • {

  • //定义外部局部变量

  • extern int x;

  • return 0;

  • }

  • int x=100;

  • 13.内部函数外部函数 !

    在C语言中不能被其他源文件调用的函数称为内部函数 ,内部函数由static关键字来定义,因此又被称为静态函数,形式为:

    static [数据类型] 函数名([参数])

    这里的static是对函数的作用范围的一个限定,限定该函数只能在其所处的源文件中使用,因此在不同文件中出现相同的函数名称的内部函数是没有问题的。

    在C语言中能被其他源文件调用的函数称为外部函数 ,外部函数由extern关键字来定义,形式为:

    extern [数据类型] 函数名([参数])

    C语言规定,在没有指定函数的作用范围时,系统会默认认为是外部函数,因此当需要定义外部函数时extern也可以省略。 extern可以省略; 14.数组 数组:一块连续的,大小固定并且里面的数据类型一致的内存空间, 数组的声明:数据类型 数组名称[长度n]

  • 数据类型 数组名称[长度n] = {元素1,元素2,元素3,......};

  • 数据类型 数组名称[] = {元素1,元素2,元素3,......};

  • 数类类型 数组名称[长度n]; 数组名称[0] = 元素1;数组名称[1] = 元素2;...... 注意: 1、数组的下标均以0开始; 2、数组在初始化的时候,数组内元素的个数不能大于声明的数组长度; 3、如果采用第一种初始化方式,元素个数小于数组的长度时,多余的数组元素初始化为0; 4、在声明数组后没有进行初始化的时候,静态(static)和外部(extern)类型的数组元素初始化元素为0,自动(auto)类型的数组的元素初始化值不确定。

  • 15.数组遍历

  • #include <stdio.h>


  • int main()

  • {

  • int arr[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};

  • int i;

  • for(i=0;i<10;i++)

  • {

  • printf("%d ",arr[i]);

  • }

  • return 0;

  • }

  • 数组的冒泡排序

  • 冒泡排序的思想:相邻元素两两比较,将较大的数字放在后面,直到将所有数字全部排序。

  • 字符串与数组

  • 在C语言中,是没有办法直接定义子字符串数据类型的,需使用数组来定义所要的字符串,形式如下:

  • char 字符串名称[长度] = "字符串内容";

  • char 字符串名称[长度] = {'字符串1','字符串2',....,'字符串n',''};

  • 注:

  • []中的长度可以省略不写;

  • 采用第二种方式最后一个元素必须是'',表示结束;

  • 第二种方式不能写中文!; 输出字符串时,要使用:printf("%s",字符数组名);或puts(字符数组名);

  • 16.字符串函数

  • strlen(s):获取字符串s的长度;

  • strcmp(s1,s2):比较字符串;比较的时候会把字符串转换成ASCII码再进行比较,返回结果为0表示s1和s2的ASCII码值相等,返回结果为1表示s1比s2的ASCII码大,返回结果为-1表示s1比s2的ACSII码小;

  • strcpy(s1,s2):字符串拷贝;s2会取代s1中的内容;

  • strcat(s1,s2)将s2拼接到s1后面;注意:s1的length要足够才可以!

  • atoi(s1)将字符串转为整数!

  • 17.多维数组

    数据类型 数组名称[常量表达式1]...[常量表达式n];

    多维数组的初始化与一维数组的初始化类似也是分两种:

  • 数据类型 数组名称[常量表达式1][常量表达式2]...[常量表达式n] = {{值1,..,值n},{值1,..,值n},...,{值1,..,值n}};

  • 数据类型 数组名称[常量表达式1][常量表达式2]...[常量表达式n]; 数组名称[下标1][下标2]...[下标n] = 值;

  • 多维数组初始化要注意以下事项:

  • 采用第一种始化时数组声明必须指定列的维数。因为系统会根据数组中元素的总个数来分配空间,当知道元素总个数以及列的维数后,会直接计算出行的维数;

  • 采用第二种初始化时数组声明必须同时指定行和列的维数。

  • 18.多维度数组的遍历

    使用嵌套循环

    注意:多维数组的每一维下标均不能越界!

    19.结构体

    C 数组允许定义可存储相同类型数据项的变量,结构是 C 编程中另一种用户自定义的可用的数据类型,它允许您存储不同类型的数据项。

    结构用于表示一条记录,假设您想要跟踪图书馆中书本的动态,您可能需要跟踪每本书的下列属性:

  • Title

  • Author

  • Subject

  • Book ID

  • 定义结构

    为了定义结构,您必须使用 struct 语句。struct 语句定义了一个包含多个成员的新的数据类型,struct 语句的格式如下:

  • struct tag {

  • member-list

  • member-list

  • member-list

  • ...

  • } variable-list ;

  • tag 是结构体标签。

    member-list 是标准的变量定义,比如 int i; 或者 float f,或者其他有效的变量定义。

    variable-list 结构变量,定义在结构的末尾,最后一个分号之前,您可以指定一个或多个结构变量。下面是声明 Book 结构的方式:

  • struct Books

  • {

  • char title[50];

  • char author[50];

  • char subject[100];

  • int book_id;

  • } book;

  • 在一般情况下,tag、member-list、variable-list 这 3 部分至少要出现 2 个。以下为实例:

  • //此声明声明了拥有3个成员的结构体,分别为整型的a,字符型的b和双精度的c

  • //同时又声明了结构体变量s1

  • //这个结构体并没有标明其标签

  • struct

  • {

  • int a;

  • char b;

  • double c;

  • } s1;


  • //此声明声明了拥有3个成员的结构体,分别为整型的a,字符型的b和双精度的c

  • //结构体的标签被命名为SIMPLE,没有声明变量

  • struct SIMPLE

  • {

  • int a;

  • char b;

  • double c;

  • };

  • //用SIMPLE标签的结构体,另外声明了变量t1、t2、t3

  • struct SIMPLE t1, t2[20], *t3;


  • //也可以用typedef创建新类型

  • typedef struct

  • {

  • int a;

  • char b;

  • double c;

  • } Simple2;

  • //现在可以用Simple2作为类型声明新的结构体变量

  • Simple2 u1, u2[20], *u3;

  • 访问结构成员

    为了访问结构的成员,我们使用成员访问运算符(.)。成员访问运算符是结构变量名称和我们要访问的结构成员之间的一个句号。您可以使用 struct 关键字来定义结构类型的变量。下面的实例演示了结构的用法:

  • #include <stdio.h>

  • #include <string.h>

  • //来源公众号:C语言与CPP编程


  • struct Books

  • {

  • char title[50];

  • char author[50];

  • char subject[100];

  • int book_id;

  • };


  • int main( )

  • {

  • struct Books Book1; /* 声明 Book1,类型为 Books */

  • struct Books Book2; /* 声明 Book2,类型为 Books */


  • /* Book1 详述 */

  • strcpy( Book1.title, "C Programming");

  • strcpy( Book1.author, "Nuha Ali");

  • strcpy( Book1.subject, "C Programming Tutorial");

  • Book1.book_id = 6495407;


  • /* Book2 详述 */

  • strcpy( Book2.title, "Telecom Billing");

  • strcpy( Book2.author, "Zara Ali");

  • strcpy( Book2.subject, "Telecom Billing Tutorial");

  • Book2.book_id = 6495700;


  • /* 输出 Book1 信息 */

  • printf( "Book 1 title : %s ", Book1.title);

  • printf( "Book 1 author : %s ", Book1.author);

  • printf( "Book 1 subject : %s ", Book1.subject);

  • printf( "Book 1 book_id : %d ", Book1.book_id);


  • /* 输出 Book2 信息 */

  • printf( "Book 2 title : %s ", Book2.title);

  • printf( "Book 2 author : %s ", Book2.author);

  • printf( "Book 2 subject : %s ", Book2.subject);

  • printf( "Book 2 book_id : %d ", Book2.book_id);


  • return 0;

  • }

  • 学好C++才是入职大厂的敲门砖! 当年要是有这课,我的C++也不至于这样

    已失效

    20.共用体

    共用体是一种特殊的数据类型,允许您在相同的内存位置存储不同的数据类型。您可以定义一个带有多成员的共用体,但是任何时候只能有一个成员带有值。共用体提供了一种使用相同的内存位置的有效方式。

  • #include <stdio.h>

  • #include <string.h>


  • union Data

  • {

  • int i;

  • float f;

  • char str[20];

  • };


  • int main( )

  • {

  • union Data data;


  • printf( "Memory size occupied by data : %d ", sizeof(data));


  • return 0;

  • }

  • 21.指针

  • #include <stdio.h>


  • int main ()

  • {

  • int var = 20; /* 实际变量的声明 */

  • int *ip; /* 指针变量的声明 */


  • ip = &var; /* 在指针变量中存储 var 的地址 */


  • printf("Address of var variable: %p ", &var );


  • /* 在指针变量中存储的地址 */

  • printf("Address stored in ip variable: %p ", ip );


  • /* 使用指针访问值 */

  • printf("Value of *ip variable: %d ", *ip );


  • return 0;

  • }

  • 22.文件读写

    写入文件

  • #include <stdio.h>


  • int main()

  • {

  • FILE *fp = NULL;


  • fp = fopen("/tmp/test.txt", "w+");

  • fprintf(fp, "This is testing for fprintf... ");

  • fputs("This is testing for fputs... ", fp);

  • fclose(fp);

  • }

  • 读取文件

  • #include <stdio.h>


  • int main()

  • {

  • FILE *fp = NULL;

  • char buff[255];


  • fp = fopen("/tmp/test.txt", "r");

  • fscanf(fp, "%s", buff);

  • printf("1: %s ", buff );


  • fgets(buff, 255, (FILE*)fp);

  • printf("2: %s ", buff );


  • fgets(buff, 255, (FILE*)fp);

  • printf("3: %s ", buff );

  • fclose(fp);


  • }

  • C语言与C++学习路线

    23.排序算法

    十大经典排序算法(动态演示+代码)

    24.查找算法

    九种查找算法

    25.面试知识

    C语言与C++面试知识总结

    26.字符串操作

    字符串操作的全面总结

    27.C语言常用标准库解读

    C语言常用标准库解读

    28. C语言最常用的贪心算法

    C语言最常用的贪心算法就这么被攻克了

    29. 常见的C语言内存错误及对策

    常见的C语言内存错误及对策

    30. C语言实现面向对象的原理

    C语言实现面向对象的原理

    31. C语言/C++内存管理

    看完这篇你还能不懂C语言/C++内存管理?

    32. 再谈C语言指针

    再谈指针:大佬给你拨开 C 指针的云雾

    C语言函数指针之回调函数

    C语言指针详解(文末有福利)

    33. C语言预处理命令

    长文详解:C语言预处理命令

    34. C语言高效编程与代码优化

    C语言高效编程与代码优化

    35. C语言结构体

    C语言之结构体就这样被攻克了!值得收藏!

    36. 原码, 反码, 补码 详解

    原码, 反码, 补码 详解

    37. C语言宏定义

    简述C语言宏定义的使用

    38. c语言之共用体union、枚举、大小端模式

    c语言之共用体union、枚举、大小端模式

‘贰’ C语言基础知识

  •1 C语言程序的结构认识

用一个简单的c程序例子,介绍c语言的基本构成、格式、以及良好的书写风格,使读者对c语言有个初步认识。

例1 计算两个整数之和的c程序:

1、任何一个c语言程序都必须包括以下格式:

这是c语言的基本结构,任何一个程序都必须包含这个机构。括号内可以不写任何内容,那么该程序将不执行任何结果。

2、main()----在c语言中称之为“主函数”,一个c程序有且仅有一个main函数,任何一个c程序总是从main函数开始执行,main函数后面的一对圆括号不能省略。

3、被大括号{ }括起来的内容称为main函数的函数体,这部分内容就是计算机要执行的内容。

4、在{  }里面每一句话后面都有一个分号(;),在c语言中,我们把以一个分号结尾的一句话叫做一个c语言的语句,分号是语句结束的标志。

5、printf(“a=%d,b=%d,sum=%d\n”,a,b,sum); ----通过执行这条c语言系统提供给我们直接使用的屏幕输出函数,用户即可看到运行结果,本程序运行后,将在显示器上显示如下结果:

6、#include

7、程序中以 /*开头并且以*/结尾的部分表示程序的注释部分,注释可以添加在程序的任何位置,为了提高程序的可读性而添加,但计算机在执行主函数内容时完全忽略注释部分,换而言之就是计算机当做注释部分不存在于主函数中。

   •  2 C程序的生成过程

C程序是先由源文件经编译生成目标文件,然后经过连接生成可执行文件,如图所示。

                              编译过程

 • 3 标识符

在编写程序时,必须为函数、变量等命名,这个名字称为标识符。C语言中标识符的命名规则如下:

标识符不能与程序中具有特殊意义的关键字相同,不能与用户编制的函数名、C语言库函数相同,在程序中各种标识符尽量不要重复,以便区分。选择变量名和其他标识符时,应注意做到 “见名知义”。

标识符分为如下三类:

1、关键字

3、用户标识符

用户根据需要自己定义的标识符称为用户标识符。无论如何自定义标识符,都必须符合标识符的三条命名规则。

 • 4 常量

在程序运行中,其值不能被改变的量称为常量。常量有5种类型:整型常量、实型常量、字符常量、字符串常量和符号常量。

(一)数值转换

数字的四种表现形式:

在计算机内部,数字均以二进制形式表示和存放,用户输入的普通十进制数字都要被计算机转换成二进制才能在计算机内部存储,同样计算机的运算结果也为二进制,一般要将其转换成十进制数再输出给用户阅读,这种转换通常由计算机自动实现。

(1)将十进制转换二进制、八进制和十六进制

除法:将十进制数除以2,记录余数,得到的商继续除以2,直到商为0,然后将各次相处所得的余数从后往前逆序排列,所得余数数字序列就是该十进制数对应的二进制数。八进制和十六进制转换方法同上。

例:十进制数13转换成二进制数的值为1101,转换八进制为015,转换成十六进制为D.

(2)将二进制、八进制和十六进制转换成十进制

乘积求和:将二进制的每一位从低位到高位(右边为低位,左边为高位)分别乘以20,21,22。。。。,然后将这些积求和。

例如:(1101)2=(13)10     (317)8=(207)10     (23E)16=(574)10

(3)二进制与八进制、十六进制数之间的相互转换

(二)整型常量

整型常量有3种形式:十进制整型常量、八进制整型常量和十六进制整型常量。

书写方式如下:

(三)实型常量

实型常量有两种表示形式:小数形式和指数形式。

(四)字符常量

(2)由一对单引号括起来,以反斜杠\开头,后跟若干数字或者字母,比如‘\n’,其中“\“是转义的意思,后面跟不同的字符表示不同的意思,这类字符常量叫转义字符。具体如图所示 。

(五)字符串常量

C语言中,以双引号括起来的,由若干个字符组成的序列即为字符串常量。

例:“ni hao”   “happy”等等。

(六)符号常量

例:计算圆的面积的c程序。

说明:

• 5 变量

变量就是其值可以改变的量。变量要有变量名,在内存中占据一定的存储单元,存储单元里存放的是该变量的值。不同类型的变量其存储单元的大小不同,变量在使用前必须定义。

(一)整型变量

不同的编译系统对上述四种整型数据所占用的位数和数值范围有不同的规定。

类型说明符

说明:

(二)实型变量

C语言中,实型变量分为单精度类型( float )和双精度类型( double )两种。如:

在vc中,float 型数据在内存中占4个字节(32位),double型数据占8个字节。单精度实数提供7位有效数字,双精度实数提供15~16位有效数字。实型常量不分float型和double型,一个实型常量可以赋给一个float 型或double型变量,但变量根据其类型截取实型常量中相应的有效数字。

注意:实型变量只能存放实型值,不能用整型变量存放实型值,也不能用实型变量存放整型值。

(三)字符变量

字符变量用来存放字符常量,定义形式:

char  变量名;

其中关键字char定义字符型数据类型,占用一个字节的存储单元。

将一个字符赋给一个字符变量时,并不是将该字符本身存储到内存中,而是将该字符对应的ASCII码存储到内存单元中。例如,字符 ′A′ 的ASCII码为65,在内存中的存放形式如下:01000001

由于在内存中字符以ASCII码存放,它的存储形式和整数的存储形式类似,所以C语言中字符型数据与整型数据之间可以通用,一个字符能用字符的形式输出,也能用整数的形式输出,字符数据也能进行算术运算,此时相当于对它们的ASCII码进行运算。

     •6 类型的自动转换和强制转换

当同一表达式中各数据的类型不同时,编译程序会自动把它们转变成同一类型后再进行计算。转换优先级为:

即左边级别“低“的类型向右边转换。具体地说,若在表达式中优先级最高的数据是double型,则此表达式中的其他数据均被转换成double型,且计算结果也是double型;若在表达式中优先级最高的数据是float型,则此表达式中的其他数据均被转换成float型,且计算结果也是float型。

在做赋值运算时,若赋值号左右两边的类型不同,则赋值号右边的类型向左边的类型转换;当右边的类型高于左边的类型时,则在转换时对右边的数据进行截取。

除自动转换外,还有强制转换,表示形式是:

讨论:当a值赋值为3.4,b值赋值为2.7,(int)(a+b)和(int)a+b的值分别为多少?

   • 7  C运算符认识

C语言的运算符范围很广,可分为以下几类:

1、算术运算符:用于各类数值运算。包括加(+)、减(-)、乘(*)、除(/)、求余(%)、自增(++)、自减(--)共七种。

2、赋值运算符:用于赋值运算,分为简单赋值(=)、复合算术赋值(+=,-=,*=,/=,%=)和复合位运算赋值(&=,|=,^=,>>=,<<=)三类共十一种。

3、逗号运算符:用于把若干表达式组合成一个表达式(,)。

4、关系运算符:用于比较运算。包括大于(>)、小于(<)、等于(==)、 大于等于(>=)、小于等于(<=)和不等于(!=)六种。

5、逻辑运算符:用于逻辑运算。包括与(&&)、或(||)、非(!)三种。

6、条件运算符:这是一个三目运算符,用于条件求值(?:)。

7、位操作运算符:参与运算的量,按二进制位进行运算。包括位与(&)、位或(|)、位非(~)、位异或(^)、左移(<<)、右移(>>)六种。

8、指针运算符:用于取内容(*)和取地址(&)二种运算。

9.、求字节数运算符:用于计算数据类型所占的字节数(sizeof)。

10、特殊运算符:有括号(),下标[],成员(→,.)等几种。

另外,按参与运算的对象个数,C语言运算符可分为:单目运算符 (如 !)、双目运算符 (如+,- )和三目运算符 (如 ?  : )。

一、   基本的算术运算符

(1)+(加法运算符或正值运算符,如2+5)。

(2)-(减法运算符或负值运算符,如4-2)。

(3)*(乘法运算符,如3*8)。

(4)/(除法运算符,如11/5)。

/的运算分为两种情况:

(5)%(模运算符或称求余运算符,%两侧均应为整型数据,如9%7的值为2)。

需要说明的是:当运算对象为负数时,所得结果随编译器不同而不同,在vc中,结果的符号与被除数相同,比如:13%-2值为1,而-15%2值为-1.

二、   算术表达式和运算符的优先级与结合性

算术表达式是用算术运算符和括号将运算量(也称操作数)连接起来的、符合C语言语法规则的表达式。运算对象包括函数、常量和变量等。

在计算机语言中,算术表达式的求值规律与数学中的四则运算的规律类似,其运算规则和要求如下。

(1)在算术表达式中,可使用多层圆括号,但括号必须配对。运算时从内层圆括号开始,由内向外依次计算各表达式的值。

(2)在算术表达式中,对于不同优先级的运算符,可按运算符的优先级由高到低进行运算,若表达式中运算符的优先级相同,则按运算符的结合方向进行运算。

(3)如果一个运算符两侧的操作数类型不同,则先利用自动转换或强制类型转换,使两者具有相同类型,然后进行运算。

三、   自增自减运算符

作用:使变量的值增1或减1。

(1)只有变量才能用自增运算符 (++)和自减运算符(--),而常量或表达式不能用,如10++或(x+y)++都是不合法的。

(2)++和--的结合方向是“自右向左“,如 -i++ ,i的左边是负号运算符,右边是自增运算符,负号运算和自增运算都是 “自右向左“结合的,相当于 -(i++)。

在循环语句中常用到自增(减)运算符,在指针中也常用到该运算符,考生要弄清楚“i++”和“++i”及“i--”和“--i”的区别,特别弄清楚表达式的值和变量的值。

例:变量n的初始值为2,则

例:有以下程序

程序运行后的输出结果是_____

A.12  35  13  35  14  36     B. 12  35  14  35  14  36

C.12  35  14  36  14  36     D. 12  35  14  35  14  35

解析:自增自减运算需要注意区分表达式的值和变量的值,表达式运算后,变量会自增自减运算,表达式和变量变化如下:

     •9 赋值运算符与赋值表达式

一、赋值运算符与赋值表达式

赋值符号 “=“就是赋值运算符,作用是将一个数据赋给一个变量或将一个变量的值赋给另一个变量,由赋值运算符组成的表达式称为赋值表达式。一般形式为:

变量名 = 表达式

在程序中可以多次给一个变量赋值,每赋一次值,与它相应的存储单元中的数据就被更新一次,内存中当前的数据就是最后一次所赋值的那个数据。

说明:

a、如果赋值号两边的运算对象类型不一致,系统会自动进行类型转换,转换的规则:将赋值号右边表达式的值的类型转换成赋值号左边变量的类型,

b、 可以将复制表达式的值再赋值给变量,形成连续赋值。

二、复合的赋值运算符

在赋值运算符之前加上其他运算符可以构成复合赋值运算符。其中与算术运算有关的复合运算符是:+=,-=,*=,/=,%= 。

两个符号之间不可以有空格,复合赋值运算符的优先级与赋值运算符的相同。表达式n+=1等价于n=n+1,作用是取变量n中的值增1再赋给变量n,其他复合的赋值运算符的运算规则依次类推。

如求表达a+=a-=a*a 的值,其中a的初值为12 。

步骤:

   •10  逗号运算符和逗号表达式

在c语言中,逗号除了作为分隔符,还可以用作一种运算符----逗号运算符,用逗号运算符将几个表达式连接起来,例如a=b+c,a=b*c等称为逗号表达式。

一般形式为:

表达式1 ,表达式2 ,表达式3 , …,表达式n

例:x=2,y=3,z=4

逗号表达式具有从左至右的结合性,即先求解表达式1,然后依次求解表达式2,直到表达式n的值。表达式n的值就是整个逗号表达式的值。上述的逗号表达式的值就是表达式z=4的值4.需要注意的是,逗号运算符是所有运算符中级别最低的。

例:有如下程序段:

程序显示结果为:y=6,x=6

讨论:将y=(x=a+b),(b+c);改为y=((x=a+b),b+c) 的程序结果?

  • 11 关系运算符和关系表达式

一、   C语言中的逻辑值

C语言中的逻辑值只有两个:真(true)和假(flase)。用非零代表真,用零代表假。因此,对于任意一个表达式,如果它的值为零,就代表一个假值,如果它的值为非零,就代表一个真值。只要值不是零,不管是正数,负数,整数,实数,都代表一个真值。例如-5的逻辑值为真。

二、   关系运算符及其优先次序

C语言提供了6种关系运算符,见表

由两个字符组成的运算符之间不可以加空格,关系运算符都是双目运算符。

(1)结合性:自左向右。

(2)优先次序:前4种关系运算符( <,<=,>=,> )的优先级别相同,后两种 (==,!=)优先级相同,且前4种优先级高于后两种;关系运算符的优先级低于算术运算符,高于赋值运算符。

三、   关系表达式

由关系运算符连接而成的表达式称为关系表达式。

例如:a>b,(a=7)>(b=10)等都是合法的关系表达式。

关系表达式的结果有两个:0和1,。其中0表示假,1表示真。如果关系表达式成立,则值为真,如果关系表达式不成立,则值为假。

例:变量a的值为5,b的值为6,那么关系表达式a>b的值为假,即为0.而关系表达式

(a=13)>(b=10)的值为真,即为1。

当关系运算符两边值的类型不一致时,若一边是整型,一边是实型,系统将自动把整型数转化为实型数,然后再进行比较。

    •12 逻辑运算符和逻辑表达式

一、   逻辑运算符及其优先级

C语言提供了3种逻辑运算符,如下表。

二、   逻辑表达式

“&&”和“||”的运算对象有两个,故它们都是双目运算符,而!的运算对象只有一个,因此它是单目运算符。逻辑运算举例如下:

(1)a&&b: 当&&两边都为“真”时,表达式a&&b的值才是真。

值得注意的是:在数学中,关系式0

(2)a||b: 当||两边有一个为“真”时,表达式a||b的值就是真。

(3)!a:   表示取反,如果a为真,则!A为假,反之亦然。例如!-5的值就为0.

在C语言中,由&&或||组成的逻辑表达式,在某些特定情况下会产生“短路“现象。

(1)x && y && z ,只有当x为真(非0)时,才需要判别y的值;只有x和y都为真时,才需要去判别z的值;只要x为假就不必判别y和z,整个表达式的值为0。口诀:“一假必假”。

例:(!5==1)&&(++i==0)  (!5==1)表达式的值为0,所以计算机运行中就跳过(++i==0)此表达式,(!5==1)&&(++i==0)表达式的值为0.

(2)x||y||z ,只要x的值为真(非零),就不必判别y和z的值,整个表达式的值为1,只有x的值为假,才需要判别y的值,只有x和y的值同时为假才需要判别z的值,口诀:“一真必真”。

   •13 位运算

一、   位运算符

在计算机中,数据都是以二进制数形式存放的,位运算就是指对存储单元中二进制位的运算。C语言提供6种位运算符。

二、位运算

位运算符 &  |~<<  >>  ∧ 按优先级从高到低排列的顺序是:

位运算符中求反运算“~“优先级最高,而左移和右移相同,居于第二,接下来的顺序是按位与 “&“、按位异或 “∧“和按位或 “|“。顺序为~  <<  >>  &  ∧  |  。

例1左移运算符“<<”是双目运算符。其功能把“<< ”左边的运算数的各二进位全部左移若干位,由“<<”右边的数指定移动的位数,高位丢弃,低位补0。

例 2右移运算符“>>”是双目运算符。其功能是把“>> ”左边的运算数的各二进位全部右移若干位,“>>”右边的数指定移动的位数。

应该说明的是,对于有符号数,在右移时,符号位将随同移动。当为正数时,最高位补0,而为负数时,符号位为1,最高位是补0或是补1 取决于编译系统的规定。

例 3 设二进制数a是00101101 ,若通过异或运算a∧b 使a的高4位取反,低4位不变,则二进制数b是。

解析:异或运算常用来使特定位翻转,只要使需翻转的位与1进行异或操作就可以了,因为原数中值为1的位与1进行异或运算得0 ,原数中值为0的位与1进行异或运算结果得1。而与0进行异或的位将保持原值。异或运算还可用来交换两个值,不用临时变量。

所以本题的答案为: 11110000 。

‘叁’ C语言指针基本概念及其指针变量的定义是什么

语言中,指针是一种类型,被称为“指针类型”。指针类型描述的是一个地址,这个地址指向内存中另外一个对象的位置。简单地说,指针表示的是它所指向对象的地址。

1、比较point,*point,&point三者的区别
对于int * point;
point:是指针变量,其内容是地址量。
*point:是指针变量的目标变量,即指针指向的那个变量,其内容是数据。
&point:是指指针变量本身所占据的存储地址。

2、指针与数组
用指针和数组名在访问内存中的数据时,他们的表现形式是等价的,因为他们都是地址量。
数组名表示整个数组的首地址,可以看作是固定地址的指针,不能被赋值。
数组名无须赋初值,而指针在使用前必须赋初值。

3、字符指针和字符串
字符串是一个字符数组,字符串以‘\0’结束。printf函数的%s格式输出字符时,是从给定的地址开始,到遇上第一个‘\0’字符时结束。
对字符指针初始化,是将字符串的首地址赋给指针。
4、指针型函数
所谓指针型函数,即返回值是指针(地址)的函数。
5、多级指针
指向指针的指针(**p)就是二级指针,指向指针的指针的指针(***p)是3级指针。
多级指针类似于间接寻址。
6、指向函数的指针
C语言中的函数名表示函数的首地址,即函数执行的人口地址。
定义形式:[存储类型][数据类型标示符](*指向函数的指针变量名)();
例子: int(*fun)();//指向函数的指针 , int * fun(); //指针型函数,注意(* fun)括号不能少
7、动态指针
当需要一大片内存的时候,最好使用动态分配。
使用malloc函数:void * malloc(size_t size)。
例子:
int * pn=malloc(10*sizeof(int));
double *pd=malloc(10*sizeof(double));

‘肆’ C语言程序设计基础概念

C语言程序设计基础概念

C语言是近年来非常流行的语言,很多人宁愿放弃已经熟悉的其他语言而改用C语言,其原因是C语言有优于其他语言的一系列特点。下面是我搜集的C语言程序设计基础概念,希望大家认真复习!

1.1 C语言的特点

C语言是近年来非常流行的语言,很多人宁愿放弃已经熟悉的其他语言而改用C语言,其原因是C语言有优于其他语言的一系列特点。下面是C语言的主要特点:

(1)语言简洁、紧凑,并且使用方便、灵活;

(2)运算符丰富;

(3)数据结构丰富;

(4)具有结构化的控制语句;

(5)语法限制不太严格,使程序设计比较自由;

(6)C语言允许用户直接访问物理地址,能进行位(bit)操作,可以直接对硬件进行操作。

1.2 源程序的书写规则

C语言的书写规则。C语言书写格式自由,一行内可以写几个语句,一个语句也可以分写在多行上。C程序没有行号,每个语句和数据定义的.最后必须有一个分号。C语言中分号是语句中不可少的,即使是程序中的最后一个语句也应该包含分号。C语言中的注释可以用〃/*〃用〃*/〃结束,注释可以在任何允许插入空格符地方插入。C语言中注释不允许嵌套,注释可以用西文,也可以用中文。

1.3 C语言的风格

由于C语言对语法限制不太严格,为了保证程序的准确性和可读性,建议在书写程序采用阶梯缩进格式。也就是按如下格式书写C语言程序:

**********;

*****()

{

**********;

********;

{

******;

……

}

*********;

}

概括起来,C语言程序具有如下的风格:

①C语言程序的函数具体模块结构风格,使得程序整体结构清晰、层次清楚,为模块化程序设计提供了强有力的支持。

②C语言的源程序的扩展名都是.C。

③C语言中的注释格式为:

/*注释内容*/

/与*之间不允许有空格,注释部分允许出现在程序中的任何位置。

④C语言中的所有语句都必须以分号“;”结束。

;

‘伍’ 什么是C语言

C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。

‘陆’ c语言有哪些基础知识

C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。

C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。

尽管C语言提供了许多低级处理的功能,但仍然保持着跨平台的特性,以一个标准规格写出的C语言程序可在包括类似嵌入式处理器以及超级计算机等作业平台的许多计算机平台上进行编译。

(6)c语言基本概念扩展阅读:

C语言的字符串其实就是以''字符结尾的char型数组,使用字符型并不需要引用库,但是使用字符串就需要C标准库里面的一些用于对字符串进行操作的函数。

它们不同于字符数组。使用这些函数需要引用头文件<string.h>。

在C语言中,输入和输出是经由标准库中的一组函数来实现的。在ANSI C中,这些函数被定义在头文件<stdio.h>;中。

‘柒’ C语言入门知识

char a[20],b[20],c[20];上面的a,b,c都是数组变量,在定义时已经为其分配栈内存,而char (*str1)[20],(*str2)[20],(*str3)[20]; 只是分配了4个字节的内存来保存指针变量(即变量本身),而指针的值(即指向)还没有,所以这些指针还不能保存数据!--------------char (*str1)[20],(*str2)[20],(*str3)[20]; str1 str2 str3均为指针,都指向长度为20的char数组.你只定义了指针,但是没有对其进

‘捌’ C语言是什么都包括哪些

C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。它由美国贝尔研究所的D.M.Ritchie于1972年推出,1978年后,C语言已先后被移植到大、中、小及微型机上,它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维,二维图形和动画,具体应用比如单片机以及嵌入式系统开发。

C语言包括:数据类型、运算符与表达式、程序结构、顺序、选择、循环、数组、函数、预处理命令、指针、结构体与共用体、文件、位运算;。

‘玖’ C璇瑷鐭ヨ瘑镐荤粨

c璇瑷姒傝
绗涓绔犮 姒傝堪
1銆 c璇瑷镄勫熀链鐭ヨ瘑
1.1銆 c璇瑷镄勬墽琛屾ラ
缂栬緫-绋嫔簭浠g爜镄勫綍鍏ワ纴鐢熸垚婧愮▼搴*.c
缂栬疟-璇娉曞垎鏋愭煡阌欙纴缈昏疟鐢熸垚鐩镙囩▼搴*.obj
锛堣娉曟垨阃昏緫阌栾锛屼粠绗涓涓寮濮嬫敼锛屽彉閲忓畾涔夛纴璇鍙ユ牸寮忥纴琛ㄨ揪寮忔牸寮忕瓑锛
阈炬帴-涓庡叾浠栫洰镙囩▼搴忔垨搴挞摼鎺ヨ呴厤锛岀敓鎴愬彲镓ц岀▼搴*.exe
镓ц
1.2銆 main鍑芥暟镄勫熀链鐭ヨ瘑
main锛堬级鍑芥暟镄勪綅缃
c绋嫔簭镐绘槸浠巑ain( )鍑芥暟寮濮嬫墽琛
涓涓猚绋嫔簭鍙浠ュ寘钖涓涓涓诲嚱鏁帮纴鍗砿ain锛堬级鍑芥暟锛涗篃鍙浠ュ寘钖涓涓猰ain()鍑芥暟鍜岃嫢骞插叾瀹冨嚱鏁
1.3銆 c绋嫔簭镄勭粨鏋
鍑芥暟涓庝富鍑芥暟
绋嫔簭鐢变竴涓鎴栧氢釜鍑芥暟缁勬垚
蹇呴’链変竴涓涓斿彧鑳芥湁涓涓涓诲嚱鏁癿ain()
绋嫔簭镓ц屼粠main寮濮嬶纴鍦╩ain涓缁撴潫锛屽叾浠栧嚱鏁伴氲繃宓屽楄皟鐢ㄥ缑浠ユ墽琛
绋嫔簭璇鍙
C绋嫔簭鐢辫鍙ョ粍鎴
鐢ㄢ滐绂钬濅綔涓鸿鍙ョ粓姝㈢
娉ㄩ喷
//

/* */ 涓烘敞閲婏纴涓嶈兘宓屽
涓崭骇鐢熺紪璇戜唬镰
1.4銆乧 绋嫔簭涔﹀啓镄勮勫垯
涔犳傥鐢ㄥ皬鍐椤瓧姣嶏纴澶у皬鍐欐晱镒
涓崭娇鐢ㄨ屽彿锛屾棤绋嫔簭琛屾傚康锛氶氩父涓涓璇鍙ュ崰涓琛
鍙浣跨敤绌鸿屽拰绌烘牸
甯哥敤阌榻垮舰镄勪功鍐欐牸寮忥绂钖屼竴灞傛$粨鏋勭殑璇鍙ヤ笂涓嫔归绨銆
绗浜岀珷銆佸熀链鏁版嵁绫诲瀷涓庤繍绠
2.1銆乧绋嫔簭镄勬暟鎹绫诲瀷
娉ㄦ剰绫诲瀷鍜屽彉閲忓惈涔夌殑涓嶅悓锛堢被鍨嬫槸锲哄畾濂界殑钖嶅瓧锛屽彉閲忔槸镊宸辫捣镄勫悕瀛楋级
鍙橀噺鍗犵敤镄勫瓨鍌ㄧ┖闂
鏁版嵁绫诲瀷
锘烘湰绫诲瀷锛氭暣鍨嬨佸瓧绗﹀瀷銆佹诞镣瑰瀷锛埚崟绮惧害鍨嬶纴鍙岀簿搴﹀瀷锛
鏋勯犵被鍨嬶细鏁扮粍绫诲瀷銆佺粨鏋勪綋绫诲瀷
鎸囬拡绫诲瀷
绌虹被鍨
娉ㄦ剰锘烘湰绫诲瀷璧嫔埯鍊肩殑鏂瑰纺
锘烘湰鏁版嵁绫诲瀷镄勮〃绀哄舰寮
鏁村舰鏁版嵁
鍗佽繘鍒讹细浠ラ潪0鏁板瓧寮澶达纴濡傦细123锛-9锛0
鍏杩涘埗;浠0鏁板瓧寮澶达纴濡傦细0123锛067
鍗佸叚杩涘埗锛氢互0x寮澶达纴濡傦细0x123,0xff
瀹炲瀷鏁版嵁
鍗佽繘鍒讹细蹇呴’甯﹀皬鏁扮偣锛屽傦细123.0锛-9.0
鎸囨暟褰㈠纺;濡傦细1.23E3锛0.9e-2,5e2
瀛楃﹀瀷鏁版嵁
鏅阃氩瓧绗︼细濡傦细钬檃钬,钬2钬,钬橦钬,钬#钬
杞涔夊瓧绗︼细濡傦细钬\n钬,钬\167钬,钬\xlf,钬\\钬
锛埚疄鐜板嚑鍒楃殑瀵归绨锛氭寚瀹氩藉害銆傚%100\ 钬\t钬椤埗琛ㄤ綅锛
锛埚瓧绗︿覆闀垮害銆傗渁bc\n\t\\钬 strlen 6; sizeof 7锛
锘烘湰鏁版嵁绫诲瀷镄勫瓨鍌ㄩ暱搴
鏁村瀷
Int 瀛楄妭鏁 2 浣嶆暟 16 鏁扮殑琛ㄧず锣冨洿 -32768钬32767
Short 2 16 -32768钬32767
Long 4 32 -2147483648钬2147483647
瀹炲瀷
Float 4 32 3.4e-38---3.4e38
Double 8 64 1.7e-308---1.7e308
瀛楃﹀瀷
Char 1 8 -128----127
2.2銆佹爣璇嗙﹀懡钖嶈勫垯
C璇瑷镙囧织绗﹀懡钖嶈勫垯
镙囱瘑绗︽湁鏁板瓧锛屽瓧姣嶏纴涓嫔垝绾跨粍鎴
镙囱瘑绗︾殑棣栧瓧绗﹀繀椤讳负瀛楁瘝鍜屼笅鍒掔嚎
镙囱瘑绗︿笉鑳戒负c璇瑷镄勪缭鐣椤瓧锛埚叧阌瀛楋级
濡傦细auto extern sizeof float static case for struct char goto switch continue in typedef const if union default long unsigned do register void double return else short while enum signed
绠楁湳杩愮畻绗 + - * / %
鍏崇郴杩愮畻绗 > < == >= <= !=
阃昏緫杩愮畻绗 锛 && ||
浣嶈繍绠楃 << >> ~ | ^ &
璧嫔艰繍绠楃 = 鍙婂叾镓╁𪾢璧嫔艰繍绠楃
𨱒′欢杩愮畻绗 ? :
阃楀彿杩愮畻绗 锛
鎸囬拡杩愮畻绗 * &
姹傚瓧鑺傛暟杩愮畻绗 sizeof
寮哄埗绫诲瀷杞鎹㈣繍绠楃 锛堢被鍨嬶级
鍒嗛噺杩愮畻绗 . ->
涓嬫爣杩愮畻绗 [ ]
鍏朵粬 濡傚嚱鏁拌皟鐢ㄨ繍绠楃()
杩愮畻绗︾殑浼桦厛绾
鐢遍珮鍒颁绠锛氩崟鐩杩愮畻绗︼纴绠楁暟杩愮畻绗︼纴鍏崇郴杩愮畻绗︼纴璧嫔艰繍绠楃
璇存槑锛氩崟鐩杩愮畻绗︼细镊澧炶繍绠楃︼纴镊鍑忚繍绠楃︼纴绫诲瀷瑁呮崲杩愮畻绗︺傜粨钖堟柟钖戯细镊鍙宠呖宸
濡傦细++--I 鍏堚攊.銆
绠楁湳杩愮畻 缁揿悎鏂瑰悜镊宸﹁呖鍙
2.3锘烘湰杩愮畻鍜岃〃杈惧纺
鍏崇郴琛ㄨ揪寮忓拰阃昏緫琛ㄨ揪寮
(a>b)&&(x>y) (a==b)||(x==y) !=a||(a>b)
A&&b.a涓0.涓嶆墽琛宐
A||b a涓1.涓嶆墽琛宐
鍦 c 涓阃昏緫杩愮畻缁撴灉锛1浠h〃钬灭湡钬濓纴0浠h〃钬滃亣钬濓绂
鍒ゆ柇涓涓琛ㄨ揪寮忔槸钖︾湡锛0浠h〃钬滃亣钬濓纴闱0浠h〃钬灭湡钬
𨱒′欢琛ㄨ揪寮 阃楀彿琛ㄨ揪寮
濡傦细k=5,k++
阃楀彿鍊间负5锛沰涓6.
琛ㄨ揪寮1锛熻〃杈惧纺2 锛氲〃杈惧纺3
K=5>6 ? 1 : 0
2.4銆佹贩钖堣繍绠楃殑鏁版嵁绫诲瀷杞鎹
2/3+0.5 鍙岀簿搴︽诞镣瑰瀷
绗涓夌珷銆侀‘搴忕粨鏋勭▼搴忚捐
3.1銆乧璇鍙ョ殑鍒嗙被
绠鍗曡鍙
琛ㄨ揪寮忚鍙 琛ㄨ揪寮+鍒嗗彿
绌鸿鍙 鍙链夊垎鍙风殑璇鍙
澶嶅悎璇鍙 鐢ㄨ姳𨰾鍙峰皢鑻ュ共璇鍙ユ嫭璧锋潵
娴佺▼鎺у埗璇鍙
阃夋嫨璇鍙 if ,switch
寰鐜璇鍙 while, do while , for
杞绉昏鍙 break ,continue ,return goto
3.2銆佹牸寮忚緭鍏ュ嚱鏁皊canf
涓鑸褰㈠纺锛歴canf(钬沧牸寮忔带鍒跺瓧绗︿覆钬滐纴鍦板潃鍒楄〃)锛
浣跨敤scanf鍑芥暟镞讹纴闇瑕佹敞镒忥细
镙煎纺瀛楃︾殑涓鏁板繀椤讳笌杈揿叆椤圭殑涓鏁扮浉钖岋纴鏁版嵁绫诲瀷蹇呴’涓涓瀵瑰簲锛岄潪镙煎纺瀛楃︿覆锛堣存槑镐х殑锛夎佸师灏佷笉锷ㄧ殑杈揿叆銆
杈揿叆瀹炶屾暟鎹镞讹纴鍙浠ヤ笉甯﹀皬鏁扮偣锛屽嵆鎸夋暣鍨嬫暟鎹杈揿叆
鏁板煎瀷鏁版嵁涓庡瓧绗︽垨瀛楃︿覆娣峰悎杈揿叆镞讹纴闇瑕佹敞镒忚緭鍏ユ柟寮忋
3.3銆佹牸寮忚緭鍑哄嚱鏁皃rintf
Printf锛堚沧牸寮忔带鍒跺瓧绗︿覆钬滐纴杈揿嚭鍒楄〃锛夛绂
鎸囧畾杈揿嚭镙煎纺锛岀敱镙煎纺瀛楃︿覆鍜岄潪镙煎纺瀛楃︿覆涓ょ岖粍鎴愶纴闱炴牸寮忓瓧绗︿覆镦у师镙疯緭鍑恒
%[镙囧织][杈揿嚭链灏忓藉害][.绮惧害][闀垮害]绫诲瀷
镙囧织锛- 宸﹀归绨锛+ 鍙冲归绨锛
%f, %d, %c, %s
3.4銆佸叾浠栬緭鍏ヨ緭鍑哄嚱鏁
Putchar getchar puts gets
绗锲涚珷銆侀夋嫨缁撴瀯绋嫔簭璁捐
If阃夋嫨缁撴瀯
鍗曞垎鏀
If(琛ㄨ揪寮)
璇鍙
鍙屽垎鏀
If(琛ㄨ揪寮)
璇鍙1
Else
璇鍙2
澶氩垎鏀
If 锛堣〃杈惧纺1锛
璇鍙1
Else if锛堣〃杈惧纺2锛
璇鍙2
銆伞伞
Else if(琛ㄨ揪寮弇)
璇鍙m
Else
璇鍙n
Switch锛堣〃杈惧纺锛
{
Case 甯搁噺琛ㄨ揪寮1锛氲鍙1锛沚reak锛
Case 甯搁噺琛ㄨ揪寮2锛氲鍙2锛沚reak锛
銆伞伞
Case 甯搁噺琛ㄨ揪寮弇锛氲鍙m锛沚reak;
Default:璇鍙n锛沚reak;
}
娉ㄦ剰break镄勪娇鐢
绗浜旂珷銆佸惊鐜缁撴瀯绋嫔簭璁捐
寰鐜涓夎佺礌
鍒濆嬫浔浠 锛涚粓姝㈡浔浠 锛涘湪鍒濆嬫浔浠跺拰缁堟㈡浔浠堕棿鍙嶅嶅仛镆愪欢浜嬫儏锛埚惊鐜浣掳级
While(琛ㄨ揪寮)
璇鍙

Do
璇鍙
While(琛ㄨ揪寮);

For(寰鐜浣揿彉閲忚祴鍒濆硷绂寰鐜𨱒′欢锛涘惊鐜鍙橀噺澧为噺)
( for( ) ; // ; 杩涜屾椂闂村欢杩熴傚湪淇℃伅浜ゆ崲绛夋椂鐢ㄣ傚俧or(i=0,i<100) ; 浜掔浉阃氲镄勬椂闂村欢杩熴 Delay )
Break璇鍙 锛氢笉鑳界敤浜庡惊鐜璇鍙ュ拰switch璇鍙ヤ箣澶栫殑浠讳綍鍏朵粬璇鍙ワ绂璺冲嚭寰鐜銆
Continue璇鍙 锛氲烦杩囧惊鐜浣扑腑鍓╀綑镄勮鍙ヨ屽己琛屾墽琛屼笅涓娆″惊鐜锛涜烦鍑烘湰娆″惊鐜銆
绗鍏绔犮佸嚱鏁颁笌缂栬疟棰勫勭悊
6.1銆佸嚱鏁扮殑瀹氢箟鍜岃皟鐢
绫诲瀷镙囱瘑绗 鍑芥暟钖 锛埚舰寮忓弬鏁板垪琛锛
{ 澹版槑閮ㄥ垎
璇鍙
}
渚嬶细
Int max (int x,int y)
{int z;<br>Z=x>y?x:y;<br>Return(z);}
6.2銆佸眬閮ㄥ彉閲忓拰鍏ㄥ眬鍙橀噺
娉ㄦ剰鍑芥暟涓闱欐佸彉閲忕殑瀹氢箟鍜屼娇鐢
6.3銆佸彉閲忕殑瀛桦偍绫诲瀷
灞閮ㄥ彉閲忕殑瀛桦偍绫诲瀷
镊锷ㄥ彉閲(auto) 锷ㄦ佸瓨鍌
灞閮ㄩ润镐佸彉閲忥纸static锛 闱欐佸瓨鍌
瀵勫瓨鍣ㄥ彉閲(register) 闱欐佸瓨鍌
鍏ㄥ眬鍙橀噺镄勫瓨鍌ㄧ被鍨
镊锷ㄥ彉閲忥纸auto锛 锷ㄦ佸瓨鍌
澶栭儴鍙橀噺 锛坋xtern锛 闱欐佸瓨鍌
鍏ㄥ眬闱欐佸彉閲忥纸static 锛夐润镐佸瓨鍌
Extern 澶栭儴寮旷敤
Static 涓嶈兘鐢╡xtern 寮旷敤銆
绗涓幂珷銆佹暟缁
7.1銆佷竴缁存暟缁勭殑瀹氢箟鍜屼娇鐢
鐗瑰埆闇瑕佹敞镒忓惊鐜浣撶殑鍒濆硷纴缁堟㈡浔浠
渚嬶细
Main()
{
Int I,a[10];
For(i=0;i<=9;i++)
A=I;
For(i=9;i>=0;i--)
Printf(钬%d钬,a);
}
娉ㄦ剰涓嬫爣闂棰
7.2銆佷簩缁存暟缁勭殑瀹氢箟鍜屼娇鐢
浜岀淮鏁扮粍镄勫埯濮嫔寲
渚嫔傦细
Int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
Int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
Int a[ ][4]={1,2,3,4,5,6,7,8,9,10,11,12};
Int a[ ][4]={{1,2,3,4},{5},{9,10,11,12}};
渚嫔傦细int a[3][3]={{1},{2},{3}};
鏄瀵规疮涓琛岀殑绗涓鍒楀厓绱犺祴鍊硷纴链璧嫔肩殑鍏幂礌鍙0
7.3銆佸瓧绗︽暟缁勫拰 瀛楃︿覆
瀛楃︿覆鐢ㄥ瓧绗︽暟缁勬潵澶勭悊锛岀粨𨱒熸爣蹇楃 钬\0钬
濡傦细char c[ ]={钬泪 am happy钬颍;
鐢ㄥ瓧绗︿覆甯搁噺浣垮瓧绗︽暟缁勫埯鍊煎寲
Char c[ ]={钬业钬,钬 钬,钬檃钬,钬檓钬,钬 钬,钬檋钬,钬檃钬,钬檖钬,钬檖钬,钬檡钬,钬\0钬檥;
绗鍏绔犮佹寚阍
8.1銆佸湴鍧鍜屾寚阍堢殑姒傚康
Int I;
Int *i_point;
8.2銆佹寚阍埚彉閲忓拰鍙橀噺镄勫湴鍧
镎崭綔绗︼细* &
8.3銆佹寚阍埚拰涓缁存暟缁
鑻ユ湁瀹氢箟
Int a[10];
Int *p=a;
鍒嗘瀽涓嬮溃琛ㄨ揪寮忕殑钖涔夛细
A, &a,
*(a+i), a+I,
*(p+i), p+i
A=*(a+i)=*(P+i)
&a=a+i=p+i
8.4銆佹寚阍堜笌瀛楃︿覆
Main()
{
Char string[ ]=钬浐 love china!钬;
Printf(钬%s\n钬,string);
}
Main()
{ char *string=钬浐 love china!钬;
Printf(钬%s\n钬,string);
}
8.5銆佹寚阍埚彉閲忎綔涓哄嚱鏁板弬鏁
褰㈠弬镄勫畾涔夋柟寮忥绂瀹炲弬镄勫舰寮忥绂鍙傛暟镄勪紶阃掓柟寮忋
绗涔濈珷銆佺粨鏋勪綋
9.1銆佺粨鏋勪綋绫诲瀷鍜屽彉閲忕殑瀹氢箟
Struct 缁撴瀯浣揿悕
{鎴愬憳鍒楄〃}锛
Struct student
{char stuNO[8];<br>Char name[20];<br>Char sex;<br>Int age;<br>Float score;<br>Char addr[30];<br>};

Stuct student
{char stuNO[8];<br>Char name[20];<br>Char sex;<br>Int age;<br>Float score;<br>Char addr[30];<br>};
Struct student stu1, stu2;
9.2銆佺粨鏋勪綋鍙橀噺镄勫紩鐢
涓鑸褰㈠纺涓猴细
缁撴瀯浣揿彉閲忓悕.鎴愬憳钖
9.3銆佺粨鏋勪綋鏁扮粍
缁撴瀯浣撴暟缁 缁撴瀯浣撴暟缁勫厓绱.鎴愬憳钖
鎸囧悜缁撴瀯浣撶殑鎸囬拡鍙橀噺
锛*p锛.鎴愬憳钖
p->鎴愬憳钖
鍏朵粬
Strcpy(瀛楃︽暟缁1锛屽瓧绗︿覆2)
Strcat(瀛楃︽暟缁1锛屽瓧绗︽暟缁2)
Strcmp(瀛楃︿覆1锛屽瓧绗︿覆2)
Strlen锛埚瓧绗︽暟缁勶级

热点内容
大宋脚本下载 发布:2024-11-27 16:21:01 浏览:89
sql认证培训 发布:2024-11-27 15:53:54 浏览:635
php的异常处理 发布:2024-11-27 15:53:54 浏览:417
电脑设置邮件服务器 发布:2024-11-27 15:53:07 浏览:4
安卓平板叫什么名字 发布:2024-11-27 15:48:12 浏览:172
税盘密码忘了去改需要带什么 发布:2024-11-27 15:41:10 浏览:277
拉筋要加密 发布:2024-11-27 15:38:51 浏览:324
电脑当服务器怎么降低功耗 发布:2024-11-27 15:30:45 浏览:642
苹果手机夸克缓存的视频怎么转为本地视频 发布:2024-11-27 15:24:05 浏览:811
linuxm4 发布:2024-11-27 15:15:12 浏览:322