一、知识点
1.在linux中,将所有硬件都视为文件来处理。
2.pwd命令用于显示用户在文件系统中的当前位置,没有任何选项和参数,结果显示为绝对路径名。
3. cd .. 回到上一级目录
4.linux与windows文件系统有什么区别?
(1)linux文件系统区分大小写,而windows文件系统不区分大小写;
(2)linux文件路径使用“/”,而windows文件路径使用“\”;
(3)linux不会锁定对文件的独占访问,而windows会锁定对文件的独占访问。
5.touch -- 创建或更新时间戳
6. h:向左 j: 向下 k: 向上 l: 向右
7.程序设计步骤:
1.预处理 2.编译 3.汇编 4.链接
8. |与||的区别:
| 无论左边结果是什么,右边还是继续运算;
||当左边为真,右边不再进行运算。
9. 逻辑运算符&与&&的区别:
& 无论左边结果是什么,右边还是继续运算;
&& 当左边为假,右边不再进行运算。
10. static关键字的作用,至少两点。
①、限制作用域,避免其它程序文件调用本文件static修饰的变量或函数;
②、指定变量的数据存储区;
③、延长生命周期等
11.const关键字的作用。
①、欲阻止一个变量被改变,可以使用const关键字。在定义该const变量时,通常需要对它进行初始化,因为以后就没有机会再去改变它了;
②、对指针来说,可以指定指针本身为const,也可以指定指针所指的数据为const,或二者同时指定为const;
③、在一个函数声明中,const可以修饰形参,表明它是一个输入参数,在函数内部不能改变其值。
12.
%p是打印地址的, %x是以十六进制形式打印, 完全不同!另外在64位下结果会不一样, 所以打印指针老老实实用%p。
13.
strlen()是C库函数,用来计算指定的字符串的长度, 直到结束字符'\0'(即null字符),但不包括结束字符'\0'。参数是字符串,返回值是字符串的字符数(size_t 类型,即无符号整型)。
sizeof是一个单目运算符,而不是一个函数,用来获得保证能容纳实现所建立的最大对象的字节大小。与函数 strlen 不同,它计算字符串的长度时包括结束字符'\0',所以计算出来的字符串长度会比strlen大1。
14. gcc支持编译的一些源文件的后缀及其解释:
.c c语言源代码
.h 程序所包含的头文件
.i 已经预处理过的c源代码文件
.s 汇编语言源代码文件 -S
.o 编译后的目标文件 -c
15.定义一个宏名字之后,可以在其他宏定义中使用例如:
#define ONE 1
#define TWO ONE+ONE
#define THREE ONE+TWO
16.使用extern说明的变量是想引用在其它文件中函数体外部说明的变量。当变量在一个文件中的函数体外说明,所有其他文件中的函数或程序段都可引用这个变量。一般用于在函数之间传递数据。
17.static称为静态存储类型,在函数体内说明的static存储类型的变量也是一种局部变量,static存储类型的变量在内存中是以固定地址存放的,而不是以堆栈方式存放的。
18.强制类型转换符后面的表达式如存在复杂运算,就一定要用小括号括起来。
19.格式符及其作用
%i,%d 十进制整数
%x,%X 十六进制无符号整数
%o 八进制无符号整数
%u 无符号十进制整数
%c 单一字符
%s 字符串
%e,%E 指数形式浮点小数
%f 小数形式浮点小数
%g e和f中较短一种
%% 百分号本身
20.break语句在switch中的作用:强行跳出switch体转到其他某条语句,每个case后面应有一个break语句(否则程序的执行顺序将改变),default分支后的break可以省略。
每个case出现的先后顺序不影响程序的执行结果
21.continue与break的区别:
continue只结束本次循环,而break终止本层循环
22.
二、基本常见的代码
if语句的嵌套
if()
if() 语句块1
else 语句块2
else
if() 语句块3
else 语句块4
打印水仙花数
#include<stdio.h>
void main()
{
int a,b,c,n;
printf("3位数以内的水仙花数为:\n");
for(n=100;n<=999;n++) //这里是让n在三位数以内
{
a=n/100; //分解出个位
b=n/10%10; //分解出十位
c=n%100%10; //分解出百位
if(n==a*a*a+b*b*b+c*c*c)
printf("%d\n",n); //判断该数的各位数字的立方和是否等于该数本身(即水仙花数)
}
return 0;
}
利用for循环打印九九乘法表
#include<stdio.h>
int main()
{
for(int i=1;i<10;i++)
{
for(int j = 1;j<=i;j++)
{
printf("%d * %d =%2d",j,i,i*j);
}
printf("\n");
}
return 0;
}
冒泡排序
#include<stdio.h>
void main()
{
int n[10] = { 25,35,68,79,21,13,98,7,16,62 };//定义一个大小为10的数组
int i, j,temp;
for (i = 1; i <= 10 - 1; i++) //外层循环是比较的轮数,数组内有10个数,那么就应该比较10-1=9轮
{
for (j = 0; j <= 10 - 1 - i; j++) //内层循环比较的是当前一轮的比较次数,例如:第一轮比较9-1=8次
{
if (n[j] > n[j + 1]) //相邻两个数如果逆序,则交换位置
{
temp = n[j];
n[j] = n[j + 1];
n[j + 1] = temp;
}
}
//for 循环执行完毕,排序完成,依次打印出排序完成后的数组元素
for (i = 0; i < 10; i++) //变量i清零赋予新的意义:控制打印个数
{
printf("%-4d", n[i]);
}
printf("\n");
return 0;
}
字符串逆序
#include<stdio.h>
int my_strlen(char *str)
{
int count = 0;
while(*str != '\0')
{
count++;
str++;
}
return count;
}
void reverse_string(char *str)
{
int left = 0;
int right = my_strlen(str)-1;
while(left < right)
{
char tmp = str[left];
str[left] = str[right];
str[right] = tmp;
left++;
right--;
}
}
更多推荐
c语言必备知识点总结
发布评论