【初识C语言】下

本文详细介绍了C语言的基础知识,包括函数的定义、调用和递归,数组的一维与二维使用,操作符的种类,以及常见的关键字。此外,还提及了#define定义常量和宏,以及指针和结构体的概念。通过对这些基础知识的了解,读者可以更好地掌握C语言编程。
摘要由CSDN通过智能技术生成

文章目录

前言

一、函数

二、数组

三、操作符

四、常见关键字

五、define定义常量和宏

六、指针

七、结构体

总结


前言

我们在初识C语言上已经介绍了C语言程序、数据类型、变量及常量、字符串及转义字符、两种语句(【初识C语言】上)。在本文中我们来介绍一下函数、数组等内容的知识。(与上一篇文章一样只是简单介绍)


一、函数

函数这个概念我们并不陌生,在数学中我们便学习过。函数的英文叫function,又翻译为功能的意思。例如:实现两个数相加的函数表达式为 f(x)=a+b;f(x)实现的功能便是实现两个数的相加。

函数的特点就是简化代码,代码复用,在编写完函数后,只需调用函数便可实现所需功能。

先来看一下函数是怎么通过代码实现:

函数的一些操作主要涉及:

函数调用、函数的嵌套调用和链式访问、函数的声明和定义、函数的递归。

二、数组

我们把一组相同类型元素的集合称为数组。有时我们需要多次定义相同类型的元素,若是直接定义,会使我们的代码变得冗长,数组的出现很好地解决了该问题。数组分为一维数组与二维数组。

1.数组的定义

int arr1[10] = { 0 };
char arr2[20] = { 0 };

上面两行代码是未初始化定义的数组。

而初始化定义数组有三种情况:

1)完全初始化:

int arr[3]={1,2,3};

2)不完全初始化

int arr[10]={1,2,3};

3)省略方括号中的数字

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

2.数组的下标

C语言规定:数组的每个元素都有一个下标,下标是从0开始的。 数组可以通过下标来访问的。int arr[10] = {0}; //如果数组10个元素,下标的范围是0-9。

我们可以通过vs中的监视窗口来看出其下标的变化:

 二维数组的定义与一维数组类似。


三、操作符

(后面章节会对每一个操作符进行讲解)

1、算术操作符:+   -    *    /    %

2、移位操作符:>>       <<

3、位操作符:&   ^   | 

4、赋值操作符:=   +=   -=   *=   /=   &=   ^=    |=    >>=   <<=

5、单目操作符:

  • !           逻辑反操作
  • -           负值
  • +           正值
  • &           取地址
  • sizeof      操作数的类型长度(以字节为单位)
  • ~           对一个数的二进制按位取反
  • --          前置、后置--
  • ++          前置、后置++
  • *           间接访问操作符(解引用操作符)
  • (类型)       强制类型转换

6、关系操作符:

  • >
  • >=
  • <
  • <=
  • !=   用于测试“不相等”
  • ==      用于测试“相等”

7、逻辑操作符:

&&      逻辑与

||         逻辑或

8、条件操作符:

exp1 ? exp2 : exp3    真前否后

9、逗号表达式:

exp1, exp2, exp3, …expN      从在往右,值由最后一个式子确定。

10、下标引用、函数调用和结构成员

 [ ] ( )  .  —>

【补充】我们输入的整数在内存中存储的是其补码。

对于一个整数来说其二进制有三种:原码、反码、补码三种形式,以-1为例。

10000000000000000000000000000001(原码)
11111111111111111111111111111110(反码)
11111111111111111111111111111111(补码)

反码由原码取反得到,补码由反码加一得到—负数。

对于正整数来说,原码、反码、补码相同


四、常见关键字

auto  break   case  char  const   continue  default  do   double else  enum  extern float  for   goto  if   int   long  register    return   short  signed sizeof   static struct  switch  typedef union  unsigned   void  volatile  while

这些关键字都是C语言本身提供,不能自己创建关键字。并且关键字不能做变量名称。

【注意】

全局变量,在其他源文件内部可以被使用,是因为全局变量有外部链接属性,要使用‘extern’关键字。但是如果被static修饰之后,就变成了内部链接属性,其他源文件就不能链接到这个静态的全局变量了。


五、define定义常量和宏

1、define定义宏

define是一个预处理指令。

(1)define定义标识符常量基本格式:

#define MAX 1000

(2)define定义宏

#define ADD(x, y) ((x)+(y))
#include <stdio.h>

int main()
{
   int sum = ADD(2, 3);
   printf("sum = %d\n", sum);

   sum = 10*ADD(2, 3);
   printf("sum = %d\n", sum);

   return 0;
}

在定义的时候需要注意x与y需要加上括号。


六、指针

1、内存

在我们正式认识指针之前先来学习内存这个概念。

内存是电脑上特别重要的存储器,计算机中程序的运行都是在内存中进行的 。
所以为了有效的使用内存,就把内存划分成一个个小的内存单元,每个内存单元的大小是1个字节。我们之前编写程序定义一个变量,计算机就把相应大小的内存空间分配给我们定义的变量。而为了能够有效的访问到内存的每个单元,就给内存单元进行了编号,这些编号被称为该内存单元的地址。如下图:

 正如我们刚刚所说,变量是创建内存中的(在内存中分配空间的),每个内存单元都有地址,所以变量也是有地址的。取出变量地址如下:

int num = 10;
&num;
printf("%p\n", &num);

该程序打印出来便是变量num的地址。&—取地址符。

七、结构体

在C语言中,有int、char、float等类型,但是在以后面对一些复杂的类型定义时只有这些类型往往是不够的,而结构体便解决了这个问题。它可以让我们创建我们想创建的类型。以创建一本书的类型为例:


总结:

以上便是这一节的内容,结合上一篇【初始C语言 上】我们以及对C语言的整体框架有了认识,在之后的文章中我们将会对具体的知识点进行深入理解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值