黑马程序员-C语言总结

------- IOS培训、android培训、java培训、期待与您交流! ----------

0.逻辑运算,位运算分类

逻辑运算:与&&  或||     非!

位运算:与&  或|  异或^  按位取反~    左移<<     右移 >>

优先级问题:算数运算>关系运算>逻辑运算

1.关键字与标识符的区别
   关键字:关键字是属于系统自带的,是具有特殊含义的符号。

标识符:是程序中自定义的一些符号和名称。

2.基本数据类型有哪些
   整型(int)  字符型(char)  浮点型(double  float)

3.代码段有什么作用
   主要是为了能够快速回收不再使用的变量内存。

4.const修饰变量有什么作用
   表示变量的值是常量,不可以修改。

5.short和long的作用
   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循环:首先进行对条件进行判断,然后再循环,处理能力最强。

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>当数组作为函数参数使用时,数组元素个数可以省略

2>当数组地址传递给函数时,数组元素值的更改会影响到外面数组元素值的更改(地址传递)
   3>当使用数组值传递时,数组元素值的更改不会影响到外面数组元素值的更改(值传递)

15.字符串的定义以及strlen的使用
    定义:字符串以字符数组组成,且字符串的最后一位是\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.预处理指令有哪些?分别说一下、

分类:宏定义、条件编译、文件包含
     宏定义:1>宏定义是值将某些字符串替换成为常量或运算符,减少了程序代码量。

2>宏定义分类带参数的宏定义和不带参数的宏定义。

3>在定义带参数的宏定义时,一定要将每个变量名用小括号括起来

条件编译:1>符合某些条件时,再将此代码段进行编译,而且只编译宏定义的语句。

2>只有编译的代码才占用内存,没有进行编译的代码不占用内存。

3>有了条件编译,必须加#endif

文件包含:可以和宏定义相结合,来防止文件重复包含。

21.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

23.为什么需要指针变量类型?

因为每个指针变量可能指向的类型不同,需要通过指定指针变量类型来顺利读取所指向地址的内容和长度。

时间: 2024-08-27 20:15:46

黑马程序员-C语言总结的相关文章

黑马程序员_C语言总结-基础部分

C语言基础 1.C语言的关键字 1>关键字就是C语言提供的有特殊含义的符号,也称为保留字,C语言中一共有32个关键字,这些关键字都有自己的含义 例如:int double float if  else switch for 等等 2.标示符的概念: 1>标示符就是在程序中自定义的一些名称,比如函数名,变量名,结构体名等等这些都是标示符 2>命名规则: 1>只能由英文字母的大小写和数字以及_下划线组成,且首字母必须为字母或者下划线_ 2>在C语言中是严格区分大小写的,比如if是

黑马程序员_OC语言前期准备

OC语言前期准备 一.OC简介 Oc语言在c语言的基础上,增加了一层最小的面向对象语法,完全兼容C语言,在OC代码中,可以混用c,甚至是c++代码. 可以使用OC开发mac osx平台和ios平台的应用程序. 拓展名:c语言-.c  OC语言.-m  兼容C++.-mm 注:其实c语言和oc甚至任何一门语言都只是我们为了实现一些功能,达到一些效果而采用的工具,抛开语法的差别外,我想最重要的应该是在解决问题的时候考虑的角度和方法不一样而已,然而这也构成了学习一门语言的重要性. 二.语法预览 (一)

黑马程序员-c语言变量作用域问题

c语言中的变量作用域总结 不管什么语言,main好像总是程序的入口,大括号是它的内容:变量的作用域总是困扰着我们,接下来,我们循序渐进的搞明白c语言中的变量作用域,首先得知道c是弱类型的语言,弱类型表现在很多方面: 1:你可以直接在程序中写一个常量,然后一个分号:1: 2:在定义函数时,void型的函数可以return:int型的可以不用写返回值. ---还有很多 下面我们一步一步开始:首先在main中定义的变量当然作用于整个main函数了 1:在main中定义变量 #include<stdio

黑马程序员——c语言学习心得—— 指针

黑马程序员——c语言学习心得—— 指针 -------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 1,打开文件fopen(文件名,打开方式);例如:FILE *fp = fopen("a1","r");  返回的是文件的指针(文件在内存缓冲区的首地址)fopen函数反回值 是指向 a1文件的指针,通常赋值给一个指针变量关于文件名a1 也可以是一个“路径+文件名”   c:\abc.txt----------------

黑马程序员——c语言学习心得——位运算符

黑马程序员——c语言学习心得——位运算符 -------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 位运算符C语言提供了六种位运算符: & 按位与 | 按位或 ^ 按位异或 ~ 取反 << 左移 >> 右移 1. 按位与运算 按位与运算符"&"是双目运算符.其功能是参与运算的两数各对应的二进位相与.只有对应的两个二进位均为1时,结果位才为1 ,否则为0.参与运算的数以补码方式出现. 例如:9&

黑马程序员——c语言学习心得—— 电影购票系统

黑马程序员——c语言学习心得——  电影购票系统 -------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 1,基础信息类 #import <Foundation/Foundation.h> #import "Cinema.h" void buyMovieTicket(){ //购买电影票 //调用 电影院的类的 buyTicket的方法 //                  [[Cinema alloc] init]; C

黑马程序员——c语言学习心得——函数传递二维数组

黑马程序员——c语言学习心得——函数传递二维数组 -------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 一.定义指针的时候一定要初始化.   变量定义的时候给变量初始化,这是保证不出错的一个很好的习惯.尤其是在指针的使用上,如果我们没有给指针初始化,就会出现野指针,该指针的指向并不是我们所希望的,一旦错误的释放了这个指针,就会发生内存的访问.那么如何初始化指针变量呢,一般有以下几种方法:   1.初始化空指针   int* pInteger=N

黑马程序员——oc语言学习心得—— 属性声明和赋值

黑马程序员——oc语言学习心得—— 属性声明和赋值 -------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 1,在oc中所有类继承与终极父类Object2,声明字符变量采用N是string  *_xxx 实例变量一般以下划线开头3,在oc中方法以+ -号区分 -号开头是实例方法或对象方法  +号开头是类方法  前置用对象调用 后者用类名调用4,在xcode4以后声明@property 不用在写@snysize  自动生成get.set方法5,属性

黑马程序员——c语言学习心得——位运算符a

黑马程序员——c语言学习心得——位运算符 -------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- c语言中经常需要通过函数传递二维数组,有三种方法可以实现,如下: 方法一, 形参给出第二维的长度. 例如: #include <stdio.h>void func(int n, char  str[ ][5] ){int i;for(i = 0; i < n; i++)  printf("/nstr[%d] = %s/n"

黑马程序员-c语言基础:各种数据类型的输出占位符

c语言中的输出操作相对java来说是比较麻烦的,每种数据类型的输出都有各自的占位符: 下面是各种数据类型的输出占位符: short/int : %d int a = 1; printf("这个整数是:%d", a); long: %ld; (long 是int得修饰,不能算是一种单独的数据类型,只是比int多了四个字节的存储空间) long long: %lld char : %c float/double : %f  float默认是6位小数输出:可以在%f中控制:例如:%.2f:输