提示:本篇文章为初识C语言的基础知识的个人总结,内容如若有误,请及时联系我更正。
- 转载请注明原创,谢谢。
前言
大家好,我是小明,今天总结的是初识C语言的相关基础知识。
提示:以下是本篇文章正文内容:
一、数组
1.数组的定义
我们存储一个数时,我们可以创建一个变量 ,例如 int x = 6; 但如果要存储十个甚至几百个时,就需要用到数组了。
那么,让我们来看一下数组的格式:
数据类型 变量名 [ 数组个数 ] = { 数据内容 } ;
或者
数据类型 变量名 [ 数组个数 ] = { 数据内容 } ;
// 数组定义时,可以省略数组个数
例如:
#include <stdio.h>
int main()
{
int arr1[5] = {1,2,3,4,5};
int arr2[] = {4,5,6,7,8};
return 0;
}
arr1 定义一个整形的数组,最多放 5 个元素,改动时需根据数据内容调整数组个数。
arr2 定义一个整形数组,放 5 个元素,省略了数组个数,后续更改可以不用调整数组个数。
2.数组的下标
当我们知道了数组的格式时,又该怎么去取值呢?
在C语言当中, 数组的每个元素都有一个下标,且下标是从0开始的。
如下图:
数组中的元素可以通过下标来访问,如果我们想取数组中的 2 ,则需要使用arr1 [1] 来访问。
例如:
#include<stdio.h>
int main()
{
int arr[4] = { 12, 345, 678, 999 };
printf("%d\n",arr[2]);
return 0;
}
运行结果:
如上图,我们在输出时,所用的下标是 2 ,则打印时会在屏幕打印数组中下标为 2 的数据 678 。
二、函数
函数是一组一起执行一个任务的语句。每个 C 程序都至少有一个函数,即主函数 main( ) ,所有简单的程序我们都可以定义其他额外的函数。
代码的划分通常是根据每个函数执行一个特定的任务来划分的。
我们可以把代码划分到不同的函数中。并且如何划分代码到不同的函数中是由我们来决定的。
例如:
#include<stdio.h>
int Add(int m, int n)
{
return m + n;
}
int main()
{
int x = 11;
int y = 22;
printf("%d\n", Add(x, y));
return 0;
}
运行结果:
我们首先声明了一个 Add( ) 的函数,其作用是可以返回两位数相加的值,当程序运行时,先进入 主函数main( ) 中,然后定义了 x 和 y 的值,在使用printf( )函数时,将 x 和 y 的值传给了 Add( )函数 的 m 和 n ,并返回了两数相加的值,然后打印在了屏幕上。
三、操作符
1.常见算术操作符
例如:
#include<stdio.h>
int main()
{
int x = 10;
int y = 3;
int a = x + y; //加
int b = x - y; //减
int c = x * y; //乘
int d = x / y; //除
int e = x % y; //取余、取模
printf("%d\n%d\n%d\n%d\n%d\n", a, b, c, d, e);
return 0;
}
运行结果:
2.其他常见操作符:
除了这些常见的操作符外,我们还会用到一些其他的操作符,这些我会在详解里给大家细说他们的作用。
四、指针
在 C 语言中,指针是一种特殊的变量,它用来存储一个变量的内存地址。换句话说,指针内存就是用来存放指针变量的内存空间。
1.内存
内存是电脑上特别重要的存储器,计算机中程序的运行都是在内存中进行的。
- 为了有效的使用内存,就把内存划分成一个个小的内存单元,每个内存单元的大小是 1 个字节。
- 为了能够有效的访问到内存的每个单元,就给内存单元进行了编号,这些编号被称为该内存单元的地址。
- 变量是创建内存时分配空间的,每个内存单元都有地址。
取出变量地址如下:#include <stdio.h> int main() { int num = 0; // #//取出num的地址 //取出的是第一个字节的地址(首地址) printf("%p\n", &num);//打印地址,%p是以地址的形式打印 return 0; }
运行结果:
2.指针的定义
那么地址又该如何存储呢?这里就需要定义指针变量了。
int num = 0;
int *p;
p = #
指针的使用:
#include <stdio.h>
int main()
{
int num = 10;
int *p = #
*p = 99;
//修改*p就修改了num的值
return 0;
}
3.指针的大小
#include <stdio.h>
int main()
{
printf("%d\n", sizeof(char*));
printf("%d\n", sizeof(short*));
printf("%d\n", sizeof(int*));
printf("%d\n", sizeof(double*));
return 0;
}
运行结果:
指针大小 在32位平台是4个字节,64位平台是8个字节。
五、结构体
C 语言中的结构体(struct)是一种自定义的数据类型,它可以将不同类型的数据组合在一起形成一个新的数据类型。
结构体主要应用于以下场景:
1. 当程序中需要表示多种不同类型的变量时,如字符型、浮点型、整型等类型,可以用结构体将这些数据作为一个整体使用。
2. 结构体可以方便地实现数据打包,从而简化程序的编写和阅读。
3. 结构体在嵌入式编程中尤为重要,因为它可以提高代码的效率。
结构体的定义形式为:
struct 结构体名{
结构体所包含的变量或数组 ;
} ;
结构体和数组类似,也是一组数据的集合,整体使用没有太大的意义。数组使用下标
[ ]
获取单个元素,结构体使用点号.
获取单个成员。
获取结构体成员的一般格式为:
结构体变量名 . 成员名 ;
例如:
描述学生,学生包含: 名字 + 年龄 + 身高的信息。
结构体可以把不同类型的数据联系起来
#include <stdio.h>
struct Stu
{
char name[20];
int age;
float height;
};
int main()
{
int num;
struct Stu stu1 = { "张三", 20, 175.2 };
struct Stu stu2 = { "李四", 19, 181.9 };
struct Stu stu3 = { "王五", 21, 168.4 };
printf("姓名:%s 年龄:%d 身高%.1f\n", stu1.name, stu1.age, stu1.height);
printf("姓名:%s 年龄:%d 身高%.1f\n", stu2.name, stu2.age, stu2.height);
printf("姓名:%s 年龄:%d 身高%.1f\n", stu3.name, stu3.age, stu3.height);
return 0;
}
运行结果:
需要注意的是,结构体是一种自定义的数据类型,是创建变量的模板,不占用内存空间;结构体变量才包含了实实在在的数据,需要内存空间来存储。
完结
好啦,阅读到这里就已经看完了本期博客的全部内容了