首页 > 代码库 > 黑马程序员-C语言总结
黑马程序员-C语言总结
------- IOS培训、android培训、java培训、期待与您交流! ----------
0.逻辑运算,位运算分类
逻辑运算:与&& 或|| 非!
位运算:与& 或| 异或^ 按位取反~ 左移<< 右移 >>
优先级问题:算数运算>关系运算>逻辑运算
1.关键字与标识符的区别
关键字:关键字是属于系统自带的,是具有特殊含义的符号。
标识符:是程序中自定义的一些符号和名称。
2.基本数据类型有哪些
整型(int) 字符型(char) 浮点型(double float)
3.代码段有什么作用
主要是为了能够快速回收不再使用的变量内存。
4.const修饰变量有什么作用
表示变量的值是常量,不可以修改。
5.short和long的作用
1>short和long都是用于修饰int;
1>short和long都是用于修饰int;
2>short范围比较小,而且short占用2字节,long占用8字节;
6.sizeof的用法
sizeof是用来计算一个变量、常量或数据类型所占用的内存字节数。
7.if与switch的区别
if:if属于判断语句,每次只有一个大括号内代码体被执行。
switch:1>根据表达式的值将流程转化到某个case。
2>如果case后没有break,则会一直执行下去,直到遇到break为止。
8.循环有哪些,他们有什么区别
for循环:首先进行对条件进行判断,然后再循环,处理能力最强。
for循环:首先进行对条件进行判断,然后再循环,处理能力最强。
while循环:首先进行对条件进行判断,然后再循环。
do..while循环:首先循环一次,然后再对条件进行判断。9.break与continue的作用;
break:退出循环。
continue:退出本次循环,进入下次循环。
10.函数是什么?它的作用是什么?定义函数的步骤
定义:函数是实现某个功能的代码段。
作用:封装一个常用功能。
步骤:1>明确函数作用,并定义一个函数名。
2>确定函数参数
3>确定函数返回值。
11.函数的声明与定义,声明与定义的区别
声明:声明存在某个函数。
定义:定义具体的函数体
区别:有无函数体
12..h和.c文件的分工
.h:函数头文件,用来声明某个函数
.c:函数体文件,用来存放具体的函数代码
13.数组与指针
1>指针可以用来访问数组元素,eg:p[i],*(p+i)
2>指针加1代表访问下一个数组元素,1的具体字节数根据指针类型来判断。
14.数组与函数的使用
1>当数组作为函数参数使用时,数组元素个数可以省略
1>当数组作为函数参数使用时,数组元素个数可以省略
2>当数组地址传递给函数时,数组元素值的更改会影响到外面数组元素值的更改(地址传递)
3>当使用数组值传递时,数组元素值的更改不会影响到外面数组元素值的更改(值传递)
3>当使用数组值传递时,数组元素值的更改不会影响到外面数组元素值的更改(值传递)
15.字符串的定义以及strlen的使用
定义:字符串以字符数组组成,且字符串的最后一位是\0;
定义:字符串以字符数组组成,且字符串的最后一位是\0;
strlen:用来计算字符串的长度,如果遇到\0则停止计算。
16.字符串与指针
利用指针定义的字符串属于常量,不可进行修改。
利用数组定义的字符串属于变量,可以修改。
17.函数与指针
分为返回指针的函数和指向函数的指针。
返回指针的函数:void *p(),也就是返回地址;
指向函数的指针:int (*p)(); 可以通过此间接操作函数。
注:定义的指针需要和函数返回类型与函数形参类型相同
注:定义的指针需要和函数返回类型与函数形参类型相同
18.局部变量与全局变量(定义,作用域,周期,初始值问题考虑)
局部变量:
局部变量:
定义:变量定义在函数(代码块内部)
作用域:从定义变量开始,到函数或代码块运行完毕.
生命周期:当定义变量时就会分配内存,当函数运行完毕后,则此内存会被回收,变量消失.
初始值问题:没有初始值
全局变量
定义:变量定义在函数或代码块外部.
作用域:从定义变量开始,一直到程序结束.
生命周期:从定义变量开始分配内存,当程序结束后,变量内存被回收.
初始值问题:初始值为0.
19.结构体与函数、指针的关系
结构体与函数:
1>如果结构体定义在函数内部,则作用域从定义的那一行开始,到函数结束,类似局部变量。
2>如果结构体定义在函数外部,则作用域从定义的那一行开始,一直到程序结束。
结构体与指针的关系:
有3种方式可以访问结构体变量:
1>stu.age
2>(*p).age
3>p->age
20.预处理指令有哪些?分别说一下、
20.预处理指令有哪些?分别说一下、
分类:宏定义、条件编译、文件包含
宏定义:1>宏定义是值将某些字符串替换成为常量或运算符,减少了程序代码量。
宏定义:1>宏定义是值将某些字符串替换成为常量或运算符,减少了程序代码量。
2>宏定义分类带参数的宏定义和不带参数的宏定义。
3>在定义带参数的宏定义时,一定要将每个变量名用小括号括起来
条件编译:1>符合某些条件时,再将此代码段进行编译,而且只编译宏定义的语句。
2>只有编译的代码才占用内存,没有进行编译的代码不占用内存。
3>有了条件编译,必须加#endif
文件包含:可以和宏定义相结合,来防止文件重复包含。
21.typedef的用法、作用、好处
用法:#typedef 类型 别名 ;
用法:#typedef 类型 别名 ;
作用:为某个类型定义别名。
好处:1>可以减少代码量。
2>可以减少工作量。
22.static与extern对函数,全局变量,局部变量的作用
对函数作用:
static:说明此函数不能被外部文件访问。
extern:说明此函数可以被外部文件访问。
对全部变量作用:
static:说明此变量不能被外部文件访问。
extern:说明此变量可以被外部文件访问。
对局部变量作用:
static:1>会延长变量周期,不会随着函数被毁而此变量消失。
2>延长变量作用域。
22. *(p++)和*(++p)是否相同。
不相同。
*(p++):先取*P的值,然后再p加1
*(++p):先p加1,然后再取*p
*(++p):先p加1,然后再取*p
23.为什么需要指针变量类型?
因为每个指针变量可能指向的类型不同,需要通过指定指针变量类型来顺利读取所指向地址的内容和长度。
黑马程序员-C语言总结
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。