栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

关于C语言的学习笔记#6

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

关于C语言的学习笔记#6

指针基础

指针是C语言的重点内容之一。
在计算机中,存放运算数据是内存条。内存条内部划分为数个小空间,每个小空间的大小为1字节,且每个空间都有一个16进制的地址。
十六进制:一种逢16进1的计数制,用1、2、3、4、5、6、7、8、9、a、b、c、d、e、f(末尾六个字母分别代表10-15)表示。
指针所表示的对象为内存的地址。指针变量存储变量的地址。
通常而言,一个变量是占据多个空间的。如int变量占据4个字节,因此它会占用4个地址。这4个地址在内存中是连续的4个数字。
对于指针变量来说,知道了数据类型和第一个地址,就能推算出其它地址,因此指针变量通常只会存储变量的第一个地址。
创建:指针变量的创建方式与普通变量的创建类似,需要用到“*”解引用操作符以及“&”取地址操作符。
指针变量表示的是变量的地址,其数据类型前缀需要与原变量相一致。
在不使用指针变量存储地址时,使用取地址操作符也能起到临时调用的效果,例如:

int main()
{
	int a = 7;  //创建整型变量a的指针变量pa
	printf("%p",&a);
	return 0;
}

如果是创建,则需要使用到解引用操作符。
创建格式如下:

int main()
{
	int a = 5;
	int * pa = &a;
	printf("%p",pa);//输出a的地址
	return 0;
}

对于其它类型的变量同理。以下为其它指针变量的创建,省略对初始变量的定义:

char * pa = &a;
double * pb = &b;
float * pc = &c;

基础运用:
在运算中,程序可以通过指针变量导向的地址获取变量的值。

int main()
{
	int a = 5;
	int * pa = &a;
	printf("%d",*pa); //“*”表示获取pa地址所指向的变量
	return 0;
}

程序也可以通过指针变量导向的地址改变变量的值。

int main()
{
	int a = 5;
	int * pa = &a;
	*pa = 20; //通过地址改变变量a的值
	printf("%d",a); //输出20
	return 0;
}
结构体基础

结构体是由一批数据组合而成的结构型数据。
结构体需要在函数外进行声明并定义其形式。这需要用到struct指令。
结构体中的变量称为结构成员。

struct a //在函数外创建一个结构体形式,命名为a
{
	int number; 
	char name[20];//汉字所占的长度较大
	double score;
};

上述代码可以理解为,在函数中使用结构体之前,先声明一种结构体类型,给出结构体内的结构成员,指导程序在之后的创建中如何去使用。上述结构体形式a在函数中可以有多个,只需要这些结构体变量之间的名字不同即可。
在函数中初始化结构体:

int main()
{
	struct a b;//创建一个a类型的结构体b
	b = {8,"张三",78.5};//根据a结构体内变量的排序一一赋值
	return 0;
}

对结构体进行操作一般需要用到结构体成员操作符。

int main()
{
	struct a n ={8,"张三",78.5};
	printf("%d,%s,%lf",n.number,n.name,n.score);
	
	return 0;
}

在上述代码中,操作符"."为结构成员操作符之一,可以从特定结构体中取出指定的变量。
使用指针变量也能实现上述效果。

int main()
{
	struct a n ={8,"张三",78.5};
	struct a * pa = &n;
	printf("1:%d,%s,%lfn",(*pa).number,(*pa).name,(*pa).score);
	printf("2:%d,%s,%lfn",pa->number,pa->name,pa->score);
	//上述两种输出方式是等效的,只是使用了不同的操作符而已
	return 0;
}

至此,C语言基础知识概念已大致了解,将进入到下一阶段的学习。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/853829.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号