c语言必备知识点总结

一、知识点

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--;
    }
}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值