C语言笔记

发布 2021-05-12 01:03:28 阅读 4986

第二单元。

0~48 a~65 a~97 esc~27

2.变量不能连续赋初值,赋值语句允许连续赋值。

等价于k=(a++)b++)c

4.空语句是什么意思?

0) 非法因为x=y+5;是语句,不能出现在表达式中;

if((x=y+5)>0) 合法。

语言必须有输出。

和putchar的使用p37,暂时看不懂。

是一个无参函数。

输入需要变量地址,无精度控制。

10.%是求余运算。

11.字符常量用单引号,字符串用双引号。

和putchar只能输入输出一个字符。

13.琐碎知识较多,多看课本。

strcpy为字符串复制函数赋值。

strcat为字符串连接函数。

strcmp用来比较两个字符串是否相同。

strlen是用来求字符串的长度。

sizeof是求占用内存空间字节数。

例如:if(strcmp(s1,s2)==0) st;如果字符串s1和s2相同,则执行st

15.动态存储变量包括auto和register变量,静态存储变量包括extern和static变量。

第三单元。1.关系运算符真和假分别用1和0表示。

2与或非。语句三种形式。

(条件) 结果;

条件)结果1;

else结果2;

3. 当条件有多个分支的时候。

if(条件1)

结果1;else if(条件2)

结果2;else if(条件3)结果3;

else if(条件m)

结果m;else

结果n;后面可以使表达式,赋值表达式,甚至一个变量。

条件后面的结果不止一条使用,但是}后面不能有“;”

如:if(a>b)

6.当有多个if和else时,规定else总是与前面最靠近的if配对。

7.三目运算符:

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

例如:if(a>b) max=a;

else max=b;

可以写成:max=a>b?a:b;

关系运算符结合方式是自右向左。

如:a>b?a:c>d?c:d应该理解为a>b?a:(c>d?c:d)

语句。switch(表达式)

case 表达式1:结果1;

case 表达式2:结果2;

case 表达式3:结果3;

case 表达式n:结果n;

default:结果n+1;

如果所有表达式都不符合,则执行default,default是最后执行的。

不能直接跳出,需要break;来跳出结果。

看不懂。第四单元。

语句。一般形式:while(条件) 结果;多条结果使用,最后无“;”

当条件为真时,执行结果。

语句。一般形式:do 语句 while(条件);

先执行语句,然后通过条件判断是否执行下去,可以参考p70流程图,多条结果使用,最后无“;”while后面有“;”

语句。一般形式:for(循环变量赋初值;循环条件;循环变量增量)循环语句。

例如:for(i=1;i<=100;i++)sum=sum+i

相当于while语句:

表达式1;while(表达式2)

语句。表达式3;}

4.可以看看例4.9的结婚问题。

语句。break对if-else不起作用

多层循环中break只能向外跳一层。

语句。第五单元。

例题。第七单元。

指针。1.把字符串首地址赋给字符类型的指针变量。

#include<>

void main()

char *p="hello";

printf("%c",*p);

输出结果:h

2.指针变量加减一个整数运算只能对指向数组的指针变量进行。

4.两个指针变量相减,只有指向同一数组才有意义,无加法,第八单元。

结构体共用体枚举。

1.结构体定义。

struct 结构名。

2.表示结构变量名的一般形式:

结构变量名。成员名。

例如:printf(%s,3.结构变量的初始化。

struct 结构体类型名结构变量=;

第九单元。预编译处理。

1.无参宏定义。

一般形式:#define 标识符字符串。

1.宏的关键是换。

2.字符串双引号内的内容永远不进行替换。

3.一个#define定义的宏,可以用#undef中止宏定义的作用域。

4.在宏定义表达式中适当使用圆括号。

二。有参宏定义。

一般形式:#define 宏名(参数表) 字符串。

如: #define s(a,b) a*b

1.在宏定义中形参最好用()括起来。

#include<>

#define f(x) x*x*x

main()

int a=3,s,t ; s=f(a+1); t=f((a+1));printf("%d,%d",s,t);

运行结果10,64

2.宏替换占用了编译时间,函数调用需要占用程序运行空间p259

3.宏的使用耗费了存储空间,函数耗费了时间p266(两个哪一个正确)

第一章。语言的标识符可分为关键字、用户标识符、和预定义标识符三类。

2.标识符由字母、数字和下划线组成,并且第一个字符必须是字母或下划线。

3.常量包括整形常量、实型常量、字符常量、字符串常量。

整形常量又可分为短整型常量和长整型常量。

4.整型常量只用数字表示不包含小数点。

实型常量必须用带小数点的数表示。

5.八进制数必须用0开头,十六进制数用0和x开头。

十六进制数中的字母abcdef分别表示。

6.在c程序中只有十进制数有负数,八进制和十六进制都没有负数。

7.计算机中,内存储器的最小存储单位是位(bit),8个二进制位组成一个字节(byte)。

8.用e或e表示的实型常量规定:(1)e或e必须要有数字之前。

2)e或e后面的指数必须为整数。

3)e或e的前后以及数字之间不能有空格。

9.在一般的计算机系统中,位float类型的变量分配4个字节的存储单元,为double类型的变量分配8个字节的存储单元。

10.只有单目运算符+和-的结合性是从右到左,其余的运算符的结合性都是从左到右。

11.强制类型转换表达式形式(类型名)(表达式)。

12.赋值运算符=号的优先级只高于逗号运算符。

第二章。1.输出数据都隐含右对齐,如果想左对齐,可以在格式控制中的%号和宽度之间加一个-号实现左对齐。

2.通常正数输出都不会带+号,要想每一个数都都带正负号,可以在%和格式字符之间加一个+来实现。

3.各种输出格式总结(1)int类型时,宽度太大时,左边空格补齐,宽度不够时自动突破限制。

2)double类型时如果对小数点后数字没有要求就是6位,当满足6位时,宽度太大,左边空格补齐。宽度不够时自动突破限制,并且保留6小数点后数字。

3)当要求输出e类型(指数形式)也是自动保留6位小数点后数字,不足用0右面补齐。

4)对于int类型,若输出格式是0n1或 .n2格式,则如果指定的宽度超过输出数据的实际宽度,则右对齐左边补0。

5)对于字符串,格式n1指定输出宽度,若n1小于字符串的实际宽度,则自动突破,输出整个字符串;若n1大于实际宽度则右对齐,左面空格补齐。若用。n2的格式输出若n2小于实际宽度则输出字符串的前n2个字符。

输出注意事项:(1)要输出%号时,可以在格式控制中用%%表示,将输出%号。

2)尽量不要改变输出变量的值。例如int k=8;printf("%d,%d",k,k++)输出结果不是8,9而是9,9。因为在调用printf时,其参数是从左到右进行处理的,先将进行++k运算。

注意事项:(1)输入short类型数据,格式控制要求用%hd。要输入double类型数据要用%lf或%le。

2)不能指定小数位的宽度。

3)多个数据输入时不同数据间要有空格或回车或制表符。

4)可以在%和格式字符之间加入*,作用是跳过对应的输入数据。

第三章。1.非0为真,0为假。

2.<、的优先级别相同,==的优先级别相同,但是前四种优先级别高于后两种。

3.优先级别比较:算术运算符》关系运算符》赋值运算符。

4.三种逻辑运算符:&&与 ||或 !非。

5.逻辑运算符的优先级别比较: !

6.总体比较优先级别比较:!>算术运算符》关系运算符》&&赋值运算符。

C语言笔记

第一课时。c语言标准格式。include vidomain 以 开头的语句称为预处理指令。include语句不是必须的,但是如果一旦有该语句就必须把它放在文件开始处是standared input output header的缩写standared 标准input 输入output 输出header...

C语言笔记

c语言算法和数据类型。整型。基本类型 字符型注释 基本类型的特点是其不可实型 单精度型以再分解为其他类型双精度型数组型。数据结构 构造型 结构体型共用体型指针型空类型。一 常量。define 语句不以分号结尾,它可以放在源 的任何位置。不过在定义常量时,只有在它定义后的源 中才有效。是一个修饰符,在...

c语言笔记

1.if中别忘了 而不是 2.写完程序别忘了检查前后大括号 小括号是否完全照应。3.遇到几分之几的分数可以方程两边同时乘以一个数来消去分母。4.写指针题时看准指针对应的是行还是列。例 int a 4 3 int p a 0 列指针。int ptr 3 a 行指针。5.考虑好哪些量会随着循环不断改变。...