问题与知识点

来源:互联网 发布:scala编程实战pdf下载 编辑:程序博客网 时间:2024/06/15 10:38

1.      配对括号的查找:将光标移动到一个括号上,按下%,光标跳转到其配对的括号上

2.      如何显示错误:gcc -Wall hello.c -o hello可以显示warning

3.      如何改变文件权限:改变文件权限:chmod,格式:chmod  [who] + /- /= [mode] 文件名

4.      gcc –g test.c –o test其中g的作用是什么:把调试信息加入生成的test可执行文件中

5.      $#:传入脚步的命令行参数个数

        $*:所有命令行的参数值,在各个参数值之间留有空格

        $0:命令本身(shell文件名)

$1:第一个命令行参数

$2:第二个命令行参

6.      gcc test.c -o test –lm中的lm的意思:  与数据库连接,数据库里存放着函数,根据头文件

7.      makefile变量定义方式:通过“=”,“:=”“+=”“?=”

8.      以上几种方式的区别是什么:“=”前面的变量可以通过后面的变量来定义,“:=”前面的变量不能通过后面的变量来定义,“+=”可以实现变量追加值,“?=”如果变量前面已经定义过了,那么后面的定义也就无效了。

9.      自动推导是什么:默认每个目标文件都有一个与之对应的依赖文件,还能推导出与目标文件对应的基本编译规则命令。

10.    在编译命令中加入某些函数库的连接参数:使用“-l”

 

 

 

1. 局部变量与全局变量的区别:局部变量:局部变量也称为内部变量,在函数内做定义说明,作用域仅限于函数内。

全局变量:也称为外部变量,在函数外部定义的变量,不属于哪个函数,只属于一个源程序文件,作用域是整个源程序。

2. 枚举和#define宏的区别:

#define宏常量是在预编译阶段进行简单替换,枚举常量则是在编译的时候确定其值。

一般在编译器里,可以调试枚举常量,但是不能调试宏常量。

枚举可以一次定义大量相关的常量,而#define宏一次只能定义一个。

3. 声明与定义的区别:

  定义是创建对象并为此分配一块内存并取名,此名即为变量名

  声明是告诉编译器这个名字已经匹配到内存了,且已预订,不在作为变量名

4.形参和实参的区别:

  形参变量是属于被调函数的局部变量,实参变量是属于主调函数的局部变量。

5.const的作用:用来修饰变量时,表示该变量里的数据可以被访问,不能被修改。

6. auto的作用: 在函数生命周期中声明的变量叫局部变量,也叫自动变量(这个变量放在内存栈中,声明入栈,使用完出栈,先进后出)

7. register:用来修辞变量时,就意味着该变量会作为一个寄存器变量,让该变量的速度达到最快。

8.Volatile:修饰变量后,每次对其值进行访问时,都会从内存里,寄存器里读取。

9. typedef:使用的目的一般有两个,一个是给变量一个新名字,另一个是简化一些比较复杂的类型声明,

10. static与extern的作用与区别:

static:用static进行修饰,该变量存放在静态数据区,其生命周期持续到整个程序执行结束,但是其作用域不发生变化,在用其修饰局部变量后,该变量只在初次运行时进行初始化工作,且只进行一次。

extern:当我们在本文件里引用一个外部声明的全局变量或函数,可以在其前面加上extern。在任何函数体外声明或定义变量时,不加extern可能时定义也可能是声明,但是加extern肯定是声明。

 

 

 

1.      同一优先级运算符运算次序:!>算术运算符>关系运算符>&&>||>赋值运算符。

2.      位操作运算符:位与(&)、位或(|)、位非(~)、位异或(^)、左移(<<)、右移(>>)

3.      逻辑运算符:与(&&)、或(||)、非(!)

4.      inti =3;

(++i)+(++i)+(++i);的答案:i经过3次自加然后变为6,然后3个6相加得18

先计算前两个i的和,这时i自加两次,为10,再加上第三次自加的i得16。

5.位运算符的操作:

& 按位与  : 与0清0    (清0)

|  按位或  : 或1置1     (置1)

^ 按位异或 :相异为1  (取反)

>> 左移:  高位丢弃,低位补0

<< 右移:  正数:高位补0;负数:符号位不动

6.++--操作符的注意事项:

++--作为前缀时是先自加或自减,然后再做别的运算

7.|| :一真即真,&&:一假即假

8.&的应用:清0特定位,取某数中指定位(不太懂)

9.|的应用:将源操作数某些位置1,其他位不变。

10.^的应用:使特定位的值取反,不引入第三变量交换两个变量的值。

 

 

 

1. 空语句的作用:

(1)消耗CPU时间,延时

(2)使程序结构清楚,可读性好,以后扩充新功能方便。

2. 表达式语句一般形式为:表达式;

函数调用语句一般形式为:函数名(实际参数表);

3. 布尔变量flag与零值比较:if(flag):表示flag 为真;if(! flag):表示flag 为假;

4. 整型变量value与零值比较:将整型变量用“==”或“!=”直接与0比较,

5. 浮点变量x与零值比较:用“>=”或“<=”与数字比较,无论是float还是double类型的变量,都有精度限制,一定要避免将浮点变量用“==”或“!=”与数字比较。

6. 指针变量p与零值比较:用“==”或“!=”与NULL比较

7.If语句的补充说明:可以将if(p==NULL )写成if(NULL==p )

8.while语句与while do语句的区别:

While:计算表达式的值,当值为真,执行循环体;

do while:先执行循环,然后判断,为真则继续循环,为假则终止循环;

9. break:跳出循环体,continue:跳出本次循环,进行下一次循环

10.if语句与switch语句的区别:

Switch为多分支选择语句,if只有两个分支可供选择。

0 0