zoukankan      html  css  js  c++  java
  • C语言易错点

    • C语言的缺点
    • 由于C语言是面向过程的,因此它的数据封装性差、安全性低,这就是C语言和其他面向对象语言的区别之一。面向对象语言的特性之一就是数据的封装性
    • 语法限制不严格,对变量的类型约束不严格,对数组下标越界不作检查等
    • C语言的优点
    • 对比汇编语言,C语言可读性好,易于调试、修改和移植,代码质量与汇编语言相当。

    一、代码分析

    1.C程序的源文件拓展名为.c

    2.#include 是C语言的预处理指令之一,所谓预处理,就是在编译之前做的处理,预处理指令一般以 # 开头

    3.一个C程序中一定会有一个main函数,也只能有一个main函数。main函数是整个C程序的入口。

    二、开发和运行C程序的步骤

    1.在编译前先执行#include指令,拷贝stdio.h的内容到源程序中

    2.编译源程序,生成目标文件.obj

    3.链接C语言函数库,生成可执行文件exec

    4.运行可执行文件,在屏幕上输出"Hello, World!"

    三、函数

    1.在大型的C程序中,为了分模块进行开发,一般会将函数的声明和定义(即实现)分别放在2个文件中,函数声明放在.h头文件中,函数定义放在.c源文件中

    四、print函数

     五、不同编译器环境下基本数据类型的存储长度

    * sizeof可以用来计算一个变量或者一个常量、一种数据类型所占的内存字节数。

    四、一维数组

    * 定义的形式为:类型  数组名[元素个数]

    int a[5];

    * []只能放在数组名的后面,下面的都是错误写法:

    int[5] a; // 错误
    int[] b; // 错误
    

    * []里面的个数必须是一个固定值,可以是常量(比如6、8)、常量表达式(比如3+4、5*7)。绝对不能使用变量或者变量表达式来表示元素个数,大多数情况下不要省略元素个数(当数组作为函数的形参和数组初始化时除外)

    下面的都是正确写法:

    int  a[5];   // 整型常量
    int  b['A'];  // 字符常量,其实就是65
    int  c[3*4];  // 整型常量表达式

    下面的都是错误写法:

    int a[]; // 没有指定元素个数,错误
    
    int i = 9;
    int a[i]; // 用变量做元素个数,错误

     

    五.二维数组的初始化

    * 按行进行初始化

    int a[2][3] = { {2, 2, 3}, {3, 4, 5} };

    * 按存储顺序进行初始化(先存放第1行,再存放第2行)

    int a[2][3] = {2, 2, 3, 3, 4, 5};

    * 对部分元素进行初始化

    int a[2][3] = { {2}, {3, 4} };
    int b[3][3] = { { }, { , , 2}, {1, 2, 3}};

    * 如果只初始化了部分元素,可以省略行数,但是不可以省略列数

    int a[][3] = {1, 2, 3, 4, 5, 6};
    int a[][3] = {{1, 2, 3}, {3, 5}, {}};

    有些人可能想不明白,为什么可以省略行数,但不可以省略列数。也有人可能会问,可不可以只指定行数,但是省略列数?

    其实这个问题很简单,如果我们这样写:

    int a[2][] = {1, 2, 3, 4, 5, 6}; // 错误写法

    大家都知道,二维数组会先存放第1行的元素,由于不确定列数,也就是不确定第1行要存放多少个元素,所以这里会产生很多种情况,可能1、2是属于第1行的,也可能1、2、3、4是第一行的,甚至1、2、3、4、5、6全部都是属于第1行的

  • 相关阅读:
    STL————vector的用法
    DFS,DP————N皇后问题
    DP经典问题—————(LCIS)最长公共上升子序列
    DP————LIS(最长上升子序列)和LCS(最长公共子序列)问题
    CentOS7使用firewalld打开关闭防火墙与端口
    CentOS7下安装MySQL5.7安装与配置(YUM)
    nginx + tomcat +redis 负载均衡遇到问题集锦
    centos 7 安装 tomcat
    centos 7 设置防火墙 开放指定端口
    centos 7 通过yum 安装 nginx
  • 原文地址:https://www.cnblogs.com/splin/p/4332658.html
Copyright © 2011-2022 走看看