问题与知识点
来源:互联网 发布: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只有两个分支可供选择。
- 问题与知识点
- ACM 大数问题的知识点与算法
- iOS项目开发中的知识点与问题收集整理
- 几何问题知识点积累
- 基础知识点问题
- js问题知识点汇总
- Android问题,知识点汇总
- C++知识点问题总结
- Java 知识点问题汇总
- Linux知识点与试题
- 类与继承知识点
- 重载与模板知识点
- PHP知识点与小结
- Python知识点与应用
- perl 知识点与应用
- Javascript与Jquery知识点
- 知识点与实例代码
- junit单元测试—知识点与问题不断相互作用最终达到融会贯通
- laravel Model 执行事务
- 大多数人,都是怎样挥霍自己天赋的
- 数据库索引的实现原理
- 校内网项目
- LintCode 二叉树的路径和
- 问题与知识点
- Hadoop 学习研究(一): 序列化与Writable
- Pyhton数据挖掘-电力窃漏电用户的自动识别
- 一篇文章看懂NB-IoT
- iOS中消息机制的处理
- Vue.js的组件化开发
- 坚守一万小时定律,为什么还是庸碌无为
- Java SDUT ACM 2445 小学数学
- 作用域链及函数调用过程相关