概述
为了使用C语言手撕数据结构,我们应首先对C语言有所了解,以下是博主挑的比较重要的一些知识点,相信对C语言基础不够好的童鞋有所帮助。
目录
- 1. Hello World程序
- 2. 选择(判断)
- 3. 循环
- for 循环
- while 循环
- 4. 数组
- 5. 指针
- 6. 结构体
1. Hello World程序
#include <stdio.h>
void main(){
//这是一个输出“Hello World!”的程序
printf("Hello World!");
/*运行结果为"Hello World!"*/
}
以上为使用C语言实现Hellow World
的代码,其中
a)#include <stdio.h>
中#include
为预处理指令,用以引用用户和系统头文件
b)<stdio.h>
中包括了一些预定义的宏(可以理解为一些规则,从库中可以调用已经定义好的这些规则)和函数(如printf()
就是stdio.h
库中已经定义好的一个显示函数,用于显示""
中的文字)
c)C语言中每一个语句后都以;
(英文分号结尾)
d)可用//
和/**/
进行注释
2. 选择(判断)
#include <stdio.h>
void main(){
int a,b;
a=1,b=2;
if(a>b){
printf("%dn",a);
}else{
printf("%dn",b);
}
}
以上代码用于实现判断,以输出a与b中的较大值,最终运行结果为2
。
以上代码功能可以用宏来实现:
#include <stdio.h>
#define Max(a,b) (a>b)?a:b
void main(){
int a,b;
a=1,b=2;
printf("%dn",Max(a,b));
}
运行结果当然还是2
,但是要更简洁些,其中(a>b)?a:b
表示如果a大于b的话结果为a,否则结果为b。
选择语句中经常会用到switch()
语句,以避免多个if else
语句的出现,使用例子如下(两版代码效果一致):
if else
版:
#include <stdio.h>
void main(){
int a;
printf("请输入a的值:");
scanf("%d",&a);//C语言中'&'表示取地址,这里表示读取输入的值
if (a==1){
printf("a==1n");
}else if(a==2){
printf("a==2n");
}else if(a==3){
printf("a==3n");
}else if(a==4){
printf("a==4n");
}else if(a==5){
printf("a==5n");
}else{
printf("a!=1-5中的任何一个数!n");
}
}
switch
版:
#include <stdio.h>
void main(){
int a;
printf("请输入a的值:");
scanf("%d",&a);//C语言中'&'表示取地址,这里表示读取输入的值
switch(a){
case 1:
printf("a==1n");
break;
case 2:
printf("a==2n");
break;
case 3:
printf("a==3n");
break;
case 4:
printf("a==4n");
break;
case 5:
printf("a==5n");
break;
default:
printf("a!=1-5中的任何一个数!n");
break;
}
}
3. 循环
for 循环
for
循环的主要使用方法为for(初始值;循环条件/*满足条件就循环*/;i累加){循环体}
,示例代码如下:
#include <stdio.h>
void main(){
int i;
for(i=0;i<10;i++){
printf("%dn",i);
}
}
while 循环
while
循环的主要使用方法为while(循环条件/*满足条件就循环*/){循环体}
,示例代码如下:
#include <stdio.h>
void main(){
int i;
i=0;
while(i<10){
printf("%dn",i);
i++;
}
}
循环中如果需要跳出循环,可以使用break
;如果什么都不需要做,可以使用continue
,这里不再示例。
4. 数组
数组数据结构是同一类型数据的组合,这些数据在内存中是连续存储的。
如上图所示,我们可以将这个长方形理解为数组,框框下面的数字为坐标,即:C语言中数组的坐标是从0
开始计数的。以上数组中我们访问元素会非常方便,但是如果我们想从中删掉或增加一个元素却非常不方便,这个问题我们将会在后面细讲。
数组的示例代码如下:
#include <stdio.h>
void main(){
int arr[10]={1,2,3,4,5,6,7,8,9,10};
int i;
for(i=0;i<10;i++){
printf("arr[%d]=%dn",i,arr[i]);
}
}
代码的运行结果为:
arr[0]=1
arr[1]=2
arr[2]=3
arr[3]=4
arr[4]=5
arr[5]=6
arr[6]=7
arr[7]=8
arr[8]=9
arr[9]=10
5. 指针
指针和我们在代码中使用的变量一样——都是变量,只不过指针用来存储内存地址。举一个可能不恰当的例子:
妈妈我要吃饭
,
饭在碗里
。
我们向妈妈要饭吃,但是妈妈并没有直接给我们饭,但告诉了我们饭在碗里,这里碗就充当指针的作用。
同理,我们在进行coding的时候,需要访问变量的时候不是直接去访问变量,而是先访问存储变量的地址,再通过地址来获取变量的值):
#include <stdio.h>
void main(){
int num=8;
int *p; //申明整型指针变量
p=#//将a的地址存到指针p中
printf("num 的存放地址:%pn",p);
printf("地址%p中存放的值为: %dn",p,*p);
int arr[3]={1,2,3};
p=arr;
printf("地址 %d 中存放的值为: %dn",p,*p);
p++;
printf("地址 %d 中存放的值为: %dn",p,*p);
printf("地址 %d 中存放的值为: %dn",p+1,*(p+1));
}
以上代码的执行结果为:
num 的存放地址:0060FEF8
地址0060FEF8中存放的值为: 8
地址 6356716 中存放的值为: 1
地址 6356720 中存放的值为: 2
地址 6356724 中存放的值为: 3
从中我们可以看出:
a)通过指针可以存放内存地址,通过内存地址可以访问出内存中存放的值即变量的值
b)int(整型)
占4个字节
c)整型中的++
运算和+1运算
都是增加一个整型(4个字节)
d)数组中数组名就是数组的首地址(第0号元素所在地址)
6. 结构体
结构体是一种自定义的数据类型,它允许不同类型的变量一起存放,这不同于数组。
结构体的定义形式为
struct 结构体名{
type 变量1;
type 变量2;
...
};
结构体的示例代码如下:
#include <stdio.h>
struct student{
int id;
char name[20];
int phone;
char address[40];
};
void main(){
struct student st1,st2;
/*初始化st1的信息*/
st1.id=2020001;
st1.phone=10086;
strcpy(st1.name,"孙悟空");
strcpy(st1.address,"花果山水帘洞");
/*初始化st2的信息*/
st2.id=2020002;
st2.phone=10000;
strcpy(st2.name,"猪八戒");
strcpy(st2.address,"乌斯藏高老庄");
/*输出学生st1的信息*/
print_stu(st1);
/*输出学生st1的信息*/
print_stu(st2);
}
void print_stu(struct student st){
printf("学号:%dn",st.id);
printf("姓名:%sn",st.name);
printf("电话:%dn",st.phone);
printf("地址:%sn",st.address);
}
以上代码的运行结果为:
学号:2020001
姓名:孙悟空
电话:10086
地址:花果山水帘洞
学号:2020002
姓名:猪八戒
电话:10000
地址:乌斯藏高老庄
才疏学浅,难免有错误和不当之处,欢迎交流批评指正!
同时有问题的话欢迎留言或邮箱联系(ljt_IT@163.com)。
最后
以上就是俊秀皮带为你收集整理的数据结构第一课(C语言基础知识)1. Hello World程序2. 选择(判断)3. 循环4. 数组5. 指针6. 结构体的全部内容,希望文章能够帮你解决数据结构第一课(C语言基础知识)1. Hello World程序2. 选择(判断)3. 循环4. 数组5. 指针6. 结构体所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复