C/C++编程笔记:C语言入门知识点(二),请收藏C语言最全笔记!

这篇博客详细介绍了C语言的基础知识,包括作用域规则、数组、枚举、指针、函数指针与回调函数、字符串、结构体、共用体、位域和typedef。通过实例讲解了局部变量、全局变量和形式参数的区别,以及数组的声明、初始化和访问。枚举的使用使得代码更加简洁,指针的概念和使用方式被详细阐述,包括NULL指针。函数指针和回调函数的介绍让读者理解了如何将函数作为参数传递。此外,还讨论了结构体的定义、初始化和访问,以及位域的存储和使用。最后,typedef用于为类型创建新的名字,方便代码阅读和维护。
摘要由CSDN通过智能技术生成

今天我们继续来学习C语言的入门知识点,关注我,可以去看第一课哦~

11. 作用域规则

任何一种编程中,作用域是程序中定义的变量所存在的区域,超过该区域变量就不能被访问。C 语言中有三个地方可以声明变量:

在函数或块内部的局部变量

在所有函数外部的全局变量

形式参数的函数参数定义中

让我们来看看什么是局部变量、全局变量和形式参数。

局部变量

在某个函数或块的内部声明的变量称为局部变量。它们只能被该函数或该代码块内部的语句使用。局部变量在函数外部是不可知的。下面是使用局部变量的实例。在这里,所有的变量 a、b 和 c 是 main() 函数的局部变量。

void main(){

    //局部变量

    int a, b;

    int c;

    //初始化局部变量

    a = 10;

    b = 20;

    c = a + b;

    //%d:以十进制形式输出带符号整数(正数不输出符号)

    printf("values of a = %d,b = %d and c = %d \n", a, b, c);

}

输出:values of a = 10,b = 20 and c = 30

 

全局变量

全局变量是定义在函数外部,通常是在程序的顶部。全局变量在整个程序生命周期内都是有效的,在任意的函数内部能访问全局变量。

全局变量可以被任何函数访问。也就是说,全局变量在声明后整个程序中都是可用的。下面是使用全局变量和局部变量的实例:

//全局变量声明

int g;

void main(){

  int a, b;

    //初始化局部变量

    a = 10;

    b = 20;

  //全部变量赋值

    g = a + c;

    printf("values of a = %d,bc = %d and g = %d \n", a, c, g);

}

输出:values of a = 10,bc = 30 and g = 40

 

形式参数

函数的参数,形式参数,被当作该函数内的局部变量,如果与全局变量同名它们会优先使用。下面是一个实例:

int sumA(int a, int b) {

    printf("value of a in sum() = %d\n", a);

    printf("value of b in sum() = %d\n", b);

    return x + y;

}

void main(){

  int a, b,c;

    //初始化局部变量

    a = 10;

    b = 20;

  c = sumA(a, b);

  printf("value of c in main() = %d\n", c);

}

输出:value of a in main() = 30

 

全局变量和局部变量的区别

(1)全局变量保存在内存的全局存储区中,占用静态的存储单元;

(2)局部变量保存在栈中,只有在所在函数被调用时才动态地为变量分配存储单元。

初始化局部变量和全局变量的默认值

12. 数组

C 语言支持数组数据结构,它可以存储一个固定大小的相同类型元素的顺序集合。数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量。

数组的声明并不是声明一个个单独的变量,比如 number0、number1、...、number99,而是声明一个数组变量,比如 numbers,然后使用 numbers[0]、numbers[1]、...、numbers[99] 来代表一个个单独的变量。数组中的特定元素可以通过索引访问。

所有的数组都是由连续的内存位置组成。最低的地址对应第一个元素,最高的地址对应最后一个元素。

声明数组

在 C 中要声明一个数组,需要指定元素的类型和元素的数量,如下所示:

type arrayName [ arraySize ];

这叫做一维数组。arraySize 必须是一个大于零的整数常量,type 可以是任意有效的 C 数据类型。例如,要声明一个类型为 double 的包含 10 个元素的数组 balance,声明语句如下:

double balance[10];

初始化数组

void main(){

  double balance[10] = {1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9,2.0}

}

大括号 { } 之间的值的数目不能大于我们在数组声明时在方括号 [ ] 中指定的元素数目。

如果您省略掉了数组的大小,数组的大小则为初始化时元素的个数。因此,如果:

void main(){

  double balance[] = {1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9,2.0}

}

您将创建一个数组,它与前一个实例中所创建的数组是完全相同的。下面是一个为数组中某个元素赋值的实例:

balance[1] = 50.5;

访问数组元素

//跟 Java 一样

double value = balance[1]

例子:

void main() {

    //定义一个长度为 10 的整数数组

    int n[10];

    int i, j;

    //初始化数组元素

    for (i = 0; i < 10; i++) {

        n[i] = 2 * i;

    }

    //输出元素中的数据

    for (int k = 0; k < 10; ++k) {

        printf("Element[%d] = %d \n", k, n[k]);

    }

    //总的大小除以其中一个大小就得到了 数组长度

    printf("整数数组 n 的长度: %d \n", sizeof(n) / sizeof(n[0]));

    //输出元素中的数据

    for (int k = 0; k < sizeof(n) / sizeof(n[0]); ++k) {

        printf("Element[%d] = %d \n", k, n[k]);

    }

}

输出:

Element[0] = 0

Element[1] = 2

Element[2] = 4

Element[3] = 6

Element[4] = 8

Element[5] = 10

Element[6] = 12

Element[7] = 14

Element[8] = 16

Element[9] = 18

整数数组 n 的长度: 10

Element[0] = 0

Element[1] = 2

Element[2] = 4

Element[3] = 6

Element[4] = 8

Element[5] = 10

Element[6] = 12

Element[7] = 14

Element[8] = 16

Element[9] = 18

 

C 中数组详解

在 C 中,数组是非常重要的,我们需要了解更多有关数组的细节。下面列出了 C 程序员必须清楚的一些与数组相关的重要概念:


13. 枚举

枚举是 C 语言中的一种基本数据类型,它可以让数据更简洁,更易读。

枚举语法定义格式为:

enum&emsp;枚举名&emsp;{枚举元素1,枚举元

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值