码迷,mamicode.com
首页 > 编程语言 > 详细

c语言---知识点总结1

时间:2015-05-01 07:07:42      阅读:151      评论:0      收藏:0      [点我收藏+]

标签:

变量:

1.变量的定义

 变量类型 变量名;

 int score;

 

 2.变量的赋值

 score = 100;

 score = a;

 score = b = 100;

 

 3.变量的输出

 int a = 200;

 printf("%i", a);

 常用格式符:

 1> %d\%i 整数(int)

 2> %f  小数(float、double)

 3> %c  字符(char)

 

变量使用注意:

1.变量的作用域

 从定义变量的那一行代码开始,一直到所在的代码块结束

 

 2.代码块的作用

 及时回收不再使用的变量,为了提升性能

 

交换变量:

a = 10

 b = 11

 交换之后

 a -> 11

 b -> 10

 

 1.利用第三方变量(工作,掌握)

 int temp = a;

 a = b;

 b = temp;

 

 2.不利用第三方变量(面试,有印象)

 a = b - a;

 b = b - a;

 a = b + a;

 

C程序从开发到运行需要哪些步骤?

1> 编写.c源文件

2> 编译.c源文件为.o目标文件

3> 链接.o目标文件为可执行文件

4> 运行可执行文件

 

拓展名为.c、.o、.out分别是什么文件?在C程序开发的哪个阶段产生的?

1> .c是C语言源文件,在编写代码的时候创建

2> .o是目标文件,在编译成功的时候产生

3> .out是可执行文件,在链接成功的时候产生

 

变量内存:

1.内存寻址由大到小,优先分配内存地址比较大的字节给变量

2.变量越先定义,内存地址就越大

3.取得变量的地址:&变量名

4.输出地址:%p

5.一个变量一定先进行初始化,才能使用

 

scanf函数使用:

1.定义一个变量,用来保存用户输入的整数

2.scanf函数只接受变量的地址

3.scanf函数是一个阻塞式的函数,等待用户输入

4.用户输入完毕后,就会将用户输入的值赋值给number变量

5.函数调用完毕

 

1.输入字符

2.一次性输入多个数值,并且以某些符号隔开

3.如果scanf参数中以空格隔开,实际输入可以以空格、tab、回车作为分隔符

4.scanf中不能写\n

 

算法运算:

1.取余运算(模运算)

2.%两边都是整数

3.%取余结果的正负性只跟%左边的数值有关

4.自动类型转换(double->int)

int a = 10.8;    

强制类型转换(double->int)

int b = (int) 10.5;

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

自动类型提升(int->double)

double c = 10.6 + 6;

5.sizeof函数,sizeof(10) , sizeof 10, sizeof(10.9),sizeof 10.9,sizeof(int),sizeof(char)

6.关系运算

条件成立就返回1,真

条件不成立就返回0,假

7.逻辑与 条件1 && 条件2

逻辑或 条件1 || 条件2

逻辑非 !条件  如果条件成立,就返回0;如果条件不成立,就返回1

8.三目运算符  条件 ? 数值1 : 数值2  条件真,取数值1;条件假,取数值2

9.比较大小时,常量值放左边,变量放右边,这样可以防止写错,尤其是写比较是否等于情况

  (写if(a==0),可能会写成if(a=0),这样写错了可能出现警告,而不是错误,

     但是若if(0=a),少写了就会提示错误的,应该写成if(0==a)  )

10.注意赋值运算符,不要写成两个=

11.if语句后面不要写;

12.如果要在if后面的语句中定义新的变量,必须用大括号{}

13.if与switch

if (条件)

 {

 

 }

  

 switch (数值)

 {

    case 数值1:

        语句1;

        break;

    case 数值2:

        语句2;

        break;

    default :

        语句3;

        break;

 }

 

1.break:退出整个switch语句

2.如果case后面没有break,就会执行后面所有case中的语句,直到遇到break为止

3.如果要在case后面定义新的变量,必须用大括号{}包住

4.if和switch异同

     1> if语句能完成的功能,switch并不一定能完成

     int a = 10;

     if (a>100)

     {

     

     }

     

     2> 在有些情况下,if语句和switch语句可以互换

     

     3> switch能完成的功能,if语句都能完成

 

scanf注意:

scanf中必须传入变量的地址,而不是直接传入变量的值

scanf中不要包含\n,\n对scanf有特殊含义

 

注意项:

// 10是常量,不能进行++运算

// 因为10++相当于10 = 10 + 1

    //int a = 10++;

 

// %两侧必须是整数

 

if和while

if (条件)

 {

 

 }

 

 while (条件)

 {

    循环体

 }

 

 运行原理

 1.如果一开始条件就不成立,永远不会执行循环体

 2.如果条件成立,就会执行一次循环体,执行完毕,再次判断条件是否成立......

 break

 直接结束整个while循环

 continue

 结束当前的循环体,进入下一次循环体的执行

 

1.先确定需要重复执行的操作

2.再确定约束条件

3.最简单的死循环 while(1);

 

while与do-while

while (条件)

 {

    

 }

 

do {

 

} while(条件);

 

 while和do-while的区别

 1.很多情况下,while和do while可以互换

 2.while特点:如果一开始的条件不成立,永远不会执行循环体

    do while特点:不管一开始的条件是否成立,至少会执行一次循环体

 3.最好使用while

 

for循环:

 for (语句1; 条件; 语句2)

 {

    循环体

 }

 

 语句1:初始化语句

 语句2:增量语句(执行完循环体后再执行的语句)

 

 1.for一开始就会执行一次语句1(整个for循环只会执行一次)

 2.判断条件是否成立,如果条件成立,就会执行一次循环体,然后就会执行语句2,再次判断条件是否成立

 

不要随便在for()后面写分号

    for (int i=0; i<5; i++);

    {

        printf("哈哈\n");

    }*/

    

    /* 错误:变量a的作用域不明确

     如果要在循环体中定义新的变量,必须用大括号{}包住

   

   最简单的利用for循环实现死循环  for(;;);

 

break和continue:

break:

 1.使用场合

 1> switch语句:退出整个switch语句

 2> 循环结构:退出整个循环语句

   * while

   * do while

   * for

 2.注意点

 只对最近的循环结构有效

 

 continue:

 1.使用场合

  循环结构:结束当前这次的循环体,进入下一次循环体

     * while

     * do while

     * for

 2.注意点

  只对最近的循环结构有效

 

函数:

1.什么情况下定义函数:添加一个常用的新功能

 

 2.函数的定义格式

 返回值类型  函数名(形式参数列表)

 {

    函数体

 }

 

 3.定义函数需要明确的东西

 1> 起一个有意义的函数名

 2> 确定函数的形参个数

 3> 确定函数的返回值

 

参数注意点

 1.形式参数:定义函数时函数名后面中的参数,简称形参

 2.实际参数:调用函数式传入的具体数据,简称实参

 3.实参个数必须等于形参个数

 4.函数体内部不能定义和形参一样的变量

 5.如果是基本数据类型作为函数形参,纯粹是值传递,修改函数内部形参的值,并不会影响外面实参的值

 6.一个函数可以没有形参,也可以有无限多个形参

 

 形式参数,简称形参

 

return的作用:

 1> 退出函数

 2> 返回一个具体值给函数调用者

 

 返回值注意点

 1> void代表没有返回值

 2> 如果没有明确说明返回值类型,默认是返回int类型

 3> 就算明确声明了返回值类型,也可以不返回任何值

 

 默认情况下,C语言不允许两个函数的名称一样

 

函数情况注意:

1.默认情况下,不允许有函数的名称一样

2.函数不能嵌套定义

3.函数不能重复定义,但是可以重复声明

4.如果有函数的声明,没有函数的定义

1> 编译可以通过,因为编译器只会检测语法合不合理,并不会检测函数有没有定义

2> 链接报错,因为链接的时候会检测函数是否定义

 

include

 1> 作用:拷贝右边文件的所有内容到#include所在的位置

 2> 自定义的文件用"",系统自带的文件用<>

 3> #include <stdio.h>的目的:拷贝printf函数的声明

 

    \n是一个转义字符

    \t tab键

    \" 一个双引号

    printf函数返回的字符串常量的字符数,并不是字数

    1个汉字占据3个字符

1.函数的定义放.c文件,函数的声明放.h文件

2.如果要使用某个.c文件中定义的函数,只需要#include这个.c文件对应的.h文件

3..h文件的作用:被别人拷贝。编译链接的时候不需要管.h文件

4.cc xx.o xxx.o 将多个目标文件链接在一起

  cc xx.c xxx.c 将多个源文件编译、链接

 

void表示没有返回值,因此不应该return一个整数  省略return也可用

返回值是int类型,因此return后面应该跟上一个整数 return 0 这个0仅仅是随便写的,具体返回什么值,应该根据业务逻辑

函数不能嵌套定义

不允许有函数同名,除非,它们函数的形参个数和类型不同

 

部分总结:

一、选择结构

1.if

1> 结构

if (条件) {

 

} else if (条件2) {

 

} else if (条件3) {

 

} else {

    

}

 

2> 特点

* 同一时刻,只有一个大括号里面的代码会被执行

 

2.switch

1> 结构

switch (数值)

{

    case 数值1:

        break;

    

    case 数值2:

        break;

    

    case 数值3:

        break;

    

    default:

        break;

}

2> 特点

1> 默认情况下,只有一个case后面的代码会被执行

2> 如果一个case后面没有break,而且这个case成立,就会按顺序执行后面所有case中的语句,直到遇到break为止

3> 如果要在case后面定义一个新的变量,必须用大括号{}包住

 

二、循环结构

1.while

1> 特点:如果一开始条件不成立,永远不会执行循环体

2.do while

1> 特点:不管条件是否成立,至少会执行一次循环体

3.for

4.选择

1> 一般优先使用for循环

2> 然后再考虑while

3> 最后再考虑do while

 

c语言---知识点总结1

标签:

原文地址:http://www.cnblogs.com/cheng923181/p/4470270.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!