天天看点

c primer plus

第一章初始c语言

c缺点:c指针编程

c运用大量运算符,

IOCCCthe International Obfuscated C Code Contest

第二章C语言概述

2.4提高程序可读性的技巧

选择有意义的函数名和写注释

在函数中用空行分隔概念上的多个部分

每条语句各占一行

2.8关键字和保留标识符

auto extern short while break float signed _Alignas case for sizeof _Alignof char goto static _Atomic const if struct _Bool

continue iniline switch _Complex default int typedef _Generic do long union _Imaginary double register unsigned _Noreturn else restrict vodi _Static_assert enum return volatile _Thread_local

第三章数据和c

第四章字符串和格式化输入输出

4.2 char name[40]; 为字符串创建数组

scanf("%s",name);scanf在遇到第1个空白(空格、制表符或换行符)时就不再读取输入。字符数组不用地址

strlen(name);结果不包含最后的\0

sizeof(name);结果是40,返回size_t类型的值,是一个无符号整数类型,

4.4转换说明

%a %A %c %d %e %E %f %g %G %i %o %p %s %u %x %X %%

第五章运算符、表达式和语句

运算符优先级

11/5 得2,11%5=1

11/-5得-2,11%-2=1

-11/-5得2,-11%-5=-1

-11/5得-2,-11%5=-1

a_post=a++;使用a的值后,递增a

b_post=++b;使用b的值之前,递增b

while()

{}

for(;;)

{}

do

 statement

while(expression);

第六章c控制语句:循环

if

else if

else

第七章c控制语句:分支和跳转

getchar()

putchar()

7.5条件运算符

expression1 ? expression2 :expression3

continue

break

switch(ch)

{

   case 'a':

       printf("argali");

       break;

   case 'b':

       printf("babirusa");

       break;

   default:

       printf("fisher");

}

第八章字符输入输出和输入验证

递归的基本原理:每次函数调用都会返回一次,当函数执行完毕后,控制权将被传回到上一级递归。

尾递归把递归调用置于函数的末尾,正好在return语句之前,

第九章函数

*间接运算符,

ptr=&poch,把poch的地址赋给ptr

var=*ptr,找出ptr指向的值

double duff(double,int);//函数原型

int main(void)

{

 doouble q,x;

 int n;

 ....

 q=duff(x,n);//函数调用

 ....

}

double duff(double u,int k) //函数定义

{

   double tor;

   ...

   return tor;  //返回double类型的值

}

第十章数值和指针

防止数组下标超出边界;

指定数组的大小

a1[5*2+1]可以

a1[sizeof(int)+1]可以

a1[-4]不可以

a1[0]不可以

a1[2.5]不可以

初始化二维数组

指针加1,指针的值递增它所指向对象的值。

datas+2==&dates[2]

*(dates+2)==dates[2]

*dates+2 //第一个元素的值加2

*(dates+2)//dates第三个元素的值