欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語(yǔ)言實(shí)現(xiàn)學(xué)生管理系統(tǒng)的源碼分享

 更新時(shí)間:2022年07月27日 14:47:55   作者:草木之花  
這篇文章主要為大家詳細(xì)介紹了如何利用C語(yǔ)言實(shí)現(xiàn)學(xué)生管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

注意:沒(méi)有用到數(shù)據(jù)庫(kù)使用鏈表完成此系統(tǒng)!

多文件實(shí)現(xiàn)

正式開始

代碼都可以直接使用

不想看的,直接復(fù)制代碼塊里面的內(nèi)容就行!

我用的visual studio 2019   有些使用了 _s  如果是用別的編譯器,可以自行修改!

功能介紹

增,刪,改,查,退出,保存,以至于格式化!

1.錄入學(xué)生信息

2.查看錄入的學(xué)生信息(全部學(xué)生信息)

3.修改已錄入的學(xué)生信息(以學(xué)號(hào))

4.刪除已錄入的學(xué)生信息(以學(xué)號(hào))

5.保存信息到文件

6.指定查找(以學(xué)號(hào))

7.隱藏選項(xiàng)(格式化鏈表--清空)

'q'退出系統(tǒng)

實(shí)現(xiàn)功能

創(chuàng)建源文件main.c 函數(shù)部分

//不一一介紹,不懂得去查就行,要學(xué)會(huì)Google!
#include "myList.h"  //引入自己寫得一個(gè)頭文件


//菜單界面
void menu(void);//函數(shù)聲明,菜單顯示函數(shù).
//按鈕互動(dòng)
void keydown(struct Node* List);

int main(void) {
	
	struct  Node* List = createrList();//創(chuàng)建一個(gè)叫List的鏈表
	readInfoFromFile(List, "student.txt");//讀取在student.txt的文件  然后寫入List鏈表中


	while (true) {//一直循環(huán),知道用戶不用這個(gè)程序后,輸入'q' 退出程序!


		//顯示菜單
		menu(); 

		//然后讀取用戶輸入的值,進(jìn)行操作!
		keydown(List);
		

		system("pause");//暫停程序用的
		system("cls");//執(zhí)行完一次,就清屏一次,看起來(lái)比較舒服
	}


	system("pause");//不閃退!同上面作用

	return 0;
}



//這里是用一個(gè)結(jié)構(gòu)體,到時(shí)用來(lái)儲(chǔ)存我們的提示信息
 //結(jié)構(gòu)體  把菜單要輸入的內(nèi)容都放進(jìn)這里面
//功能
struct hint_menu {//桌面菜單使用!
	char one_menu[25];
	char two_menu[30];
	char three_menu[30];
	char four_menu[30];
	char five_menu[25];
	char six_menu[25];
	char seven_menu[25];

};




//桌面菜單
void menu(void) {

	//使用指針 chosen 指向我們的結(jié)構(gòu)體 ,然后給它動(dòng)態(tài)分配空間
// 									類型    						分配的大小
	struct hint_menu* chosen = (struct hint_menu*)malloc(sizeof(struct hint_menu));

	if (chosen) {//這里的if()可寫可不寫,我寫了是劃分代碼塊好看點(diǎn)

	//存入要輸入內(nèi)容
	//這里修改內(nèi)容即可  ,  想添加就去結(jié)構(gòu)體那先添加一下數(shù)組
	strcpy_s(chosen->one_menu, sizeof(chosen->one_menu), "1.錄入學(xué)生信息");
	strcpy_s(chosen->two_menu, sizeof(chosen->two_menu), "2.查看已錄入的學(xué)生信息");
	strcpy_s(chosen->three_menu, sizeof(chosen->three_menu), "3.修改已錄入的學(xué)生信息");
	strcpy_s(chosen->four_menu, sizeof(chosen->four_menu), "4.刪除已錄入的學(xué)生信息");
	strcpy_s(chosen->five_menu, sizeof(chosen->five_menu), "5.保存至文件");
	strcpy_s(chosen->six_menu, sizeof(chosen->six_menu), "6.指定查找");
	strcpy_s(chosen->seven_menu, sizeof(chosen->seven_menu), "q.退出系統(tǒng)");

	//其實(shí)這樣比較麻煩

	//你們可以直接定義一個(gè)字符串
	//char inset[20] = "1.錄入學(xué)生信息";  以此類推



	//輸出你存入的內(nèi)容
		printf("\n\n\n\n");
		printf("\t\t\t\t******************歡迎進(jìn)入學(xué)生管理系統(tǒng)*******************\n");
		printf("\t\t\t\t*\t\t %s\t\t\t\t*\n", chosen->one_menu);
		printf("\t\t\t\t*\t\t %s  \t\t*\n", chosen->two_menu);
		printf("\t\t\t\t*\t\t %s  \t\t*\n", chosen->three_menu);
		printf("\t\t\t\t*\t\t %s  \t\t*\n", chosen->four_menu);
		printf("\t\t\t\t*\t\t %s \t\t\t\t*\n", chosen->five_menu);
		printf("\t\t\t\t*\t\t %s \t\t\t\t*\n", chosen->six_menu);
		printf("\t\t\t\t*\t\t %s \t\t\t\t*\n", chosen->seven_menu);
		printf("\t\t\t\t*********************************************************\n");
		printf("\t\t\t\t請(qǐng)輸入你的選項(xiàng)1~6  and  (q quit program):");

		fflush(stdout);//刷新輸出緩沖流
	}

	

}

                                                                                                                                //功能實(shí)現(xiàn)  ,按鈕互動(dòng)                                                                      
void keydown(struct Node* List) {

	struct  student  info;
	char num[12];
	char choose,ch;
	choose = enter();
	switch (choose) {

	
	case '1':
		printf("\t\t\t\t******************錄入學(xué)生信息******************\n");
		printf("\t\t\t\t請(qǐng)輸入要錄入的學(xué)生:學(xué)號(hào)\t姓名\t性別\t年齡\t電話\t\n");
		printf("\t\t\t\t請(qǐng)輸入學(xué)號(hào):");

		scanf_s("%s",info.number, (unsigned int)sizeof(info.number));
		
	

		printf("\t\t\t\t請(qǐng)輸入姓名:");

		scanf_s("%s",info.name,(int)sizeof(info.name));

		printf("\t\t\t\t請(qǐng)輸入%s的性別:",info.name);


		scanf_s("%s",info.gender,(int)sizeof(info.gender));


		printf("\t\t\t\t請(qǐng)輸入%s的年齡:", info.name);

		scanf_s("%hd", &info.age);

		printf("\t\t\t\t請(qǐng)輸入%s的電話:", info.name);

		scanf_s("%s", info.tel, (int)sizeof(info.tel));

		insertNodeByHead(List, info);
		printf("\t\t\t\t錄入完成! Done!");
		break;


		

	case '2':
		printf("\t\t\t\t***************查看已錄入學(xué)生信息************\n");
		printfNode(List);
		printf("\t\t\t\t一共有%d個(gè)人\n", LengthNode(List));
		break;


	case '3':
		printf("\t\t\t\t******************修改學(xué)生信息*******************\n");
		printfNode(List);
		printf("\t\t\t\t請(qǐng)輸入需要修改的學(xué)生學(xué)號(hào):");
		scanf_s("%s", num, (unsigned int)sizeof(num));
		upDataNode(List,num);
		break;


	case '4':
		printf("\t\t\t\t******************刪除學(xué)生信息*******************\n");
		printfNode(List);
		printf("\t\t\t\t請(qǐng)輸入需要?jiǎng)h除的學(xué)生學(xué)號(hào):");
		scanf_s("%s",num,(unsigned int)sizeof(num));
		deteleNodeAppoinNumber(List, num);
		break;


	case '5':
		printf("\t\t\t\t******************保存至文件*******************\n");
		weiteInfoToFile(List, "use_stu.txt");
		printf("\t\t\t\t備份完成\n");
		printf("\t\t\t\tDone\n");
		break;


	case '6':
		printf("\t\t\t\t******************指定位置查找*******************\n");
		printf("\t\t\t\t請(qǐng)輸入想要查找的學(xué)生學(xué)號(hào):");
		scanf_s("%s",num, (unsigned int)sizeof(num));
		printfToInput(List,num);
		printf("\t\t\t\t\t\t\t\tDone\n");
		break;


	case '7':
		printf("\t\t\t\t******************格式化鏈表*******************\n");
		printf("\t\t\t\t*********************************\n");
		printf("\t\t\t\t******************注意***********\n");
		printf("\t\t\t\t********此操作無(wú)法撤回!**********\n");
		printf("\t\t\t\t(確認(rèn)請(qǐng)輸入[Y] 取消請(qǐng)選擇[q]):");
		ch = enter();
		switch (ch)
		{
		case 'Y':
			formattedLinkedList(List);
			weiteInfoToFile(List, "student.txt");
			break;
		case 'q':
			printf("\t\t\t\t退出成功");
			return;
			break;
		default:
			printf("\t\t\t\t(確認(rèn)請(qǐng)輸入[Y] 取消請(qǐng)選擇[q]):");
			break;
		}
		break;


	case 'q':
		printf("\t\t\t\t正常退出系統(tǒng)成功\n");
		exit(0);
		break;


	default:
		printf("\n\t\t\t\t請(qǐng)重新輸入(1~5  and  (q quit program))\n");
		break;

	}
	weiteInfoToFile(List,"student.txt");
}

創(chuàng)建源文件頭文件 enter.h 部分

#pragma once  //防止重復(fù)引用
#include "myList.h" 



//處理寫入
char enter(void); //函數(shù)聲明


char enter(void) {
	short count = 1;//次數(shù)

	char input = getchar(); // 讀取單個(gè)字符
	fflush(stdin);//清空輸入緩存區(qū),防止讀取后,又讀取

	for (int i = 1; i <= 12; i++) {//如果超過(guò)誤輸入超過(guò)13次,強(qiáng)制退出程序
	
		if (input == '\n') {//如果讀取的一直是回車,就會(huì)執(zhí)行,否則返回該值
			count++;
			
			scanf_s("%c", &input, 3);
			
			fflush(stdin);

			if (count == 5) {
				printf("\n\t\t\t\t\t\t別再調(diào)皮了!\n");
				continue;
			}
			else if (count == 11) {
				printf("\n\t\t\t\t\t\t別在摁回車鍵了!最后一次機(jī)會(huì)了\n");
				continue;

			}
			else if (count == 13) {

				printf("\n\t\t\t\t\t\t程序已強(qiáng)制退出!byebye");
				exit(0);
			}

		}
		else { return  input; }

	}
	return 0;
}

重頭戲來(lái)咯

創(chuàng)建頭文件 myList.h

#pragma once
//前面沒(méi)有引用是應(yīng)為這里都引用了,所以引用一次頭文件就歐克了 
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <string.h>
#include <ctype.h>
#include "enter.h"


//定義一個(gè)學(xué)生類型的結(jié)構(gòu)體         
struct student {

	char name[20]; //姓名
	char gender[3];//性別
	char number[12]; //學(xué)號(hào)
	char tel[12];//電話號(hào)碼
	short age;//年齡

	//需要可以在添加

};

//結(jié)點(diǎn)
struct Node {

	struct student data;  //數(shù)據(jù)域

	struct Node* next;		//指針域
};


//創(chuàng)建鏈表
struct Node* createrList(void) {

	struct Node* headNode = (struct Node*)malloc(sizeof(struct Node));

	if (headNode) {
		//初始化
		headNode->next = NULL;

	}

	return headNode;
}

//創(chuàng)建結(jié)點(diǎn)
struct Node* createNode(struct student data) {

	struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));

	if (newNode) {
		//把數(shù)據(jù)存進(jìn)去
		newNode->data = data;
		newNode->next = NULL;
	}

	return newNode;	

}

//插入結(jié)點(diǎn)				參數(shù):插入哪個(gè)鏈表  插入結(jié)點(diǎn)的數(shù)據(jù)是多少
void insertNodeByHead(struct Node* headNode, struct student data) {
	//創(chuàng)建結(jié)點(diǎn)
	struct Node* newNode = createNode(data);//賦值
	//使插入的結(jié)點(diǎn)接在 headNode后面
	newNode->next = headNode->next;
	headNode->next = newNode;

}



//打印鏈表 也就是遍歷
void  printfNode(struct Node* headNode) {

	struct Node* pMove = headNode->next;

	printf("\t\t\t\t\t學(xué)號(hào)\t姓名\t性別\t年齡\t電話\n");
	while (pMove != NULL) {

		printf("\n\t\t\t\t\t%06s\t%s\t%s\t%hd\t%s", pMove->data.number, pMove->data.name, pMove->data.gender, pMove->data.age, pMove->data.tel);

		pMove = pMove->next;
	}

	printf("\n");

}



//指定位置刪除
void deteleNodeAppoinNumber(struct Node* headNode, char number[12]) {

	struct Node* posNode = headNode->next;
	struct Node* posFrontNode = headNode;

	if (posNode == NULL) {
		printf("\t\t\t\t\t\t表中沒(méi)有參數(shù)\n");
	}
	else {


		while (strcmp(posNode->data.number,number)!=0) {//如果不是的話

			posFrontNode = posNode;
			posNode = posNode->next;

			if (posNode == NULL) {//找到最后一個(gè)也沒(méi)有找到

				printf("\t\t\t\t\t\t表中沒(méi)有該學(xué)號(hào)的學(xué)生.\n");
				return;
			}
		}

		//找到了
		posFrontNode->next = posNode->next;

		free(posNode);

		printf("\t\t\t\t\t\tDone it!\n");

	}


}

//更新已錄入內(nèi)容
void upDataNode(struct Node* headNode, char number[12]) {

	struct Node* posNode = headNode->next;
	struct Node* posFrontNode = headNode;
	struct student info;
	char chosen;

	if (posNode == NULL) {

		printf("\t\t\t\t\t\t無(wú)法修改,該表里面沒(méi)有內(nèi)容\n");

	}
	else {
		while (strcmp(posNode->data.number,number)!=0) {

			posFrontNode = posNode;
			posNode = posNode->next;

			if (posNode == NULL) {
				printf("\t\t\t\t\t\t該表中沒(méi)有此學(xué)號(hào)的學(xué)生,無(wú)法修改\n");
				return;
			}

		}

		while (true) {
			printf("\t\t\t\t\t\t請(qǐng)輸入要修改什么選項(xiàng):"
				"\n\t\t\t\t\t\t(1.學(xué)號(hào)\t2.姓名\t3.性別\t4.年齡\t5.電話)"
				"\n\t\t\t\t\t\t(如果不需要了選擇'Q')\n-->:");
			chosen = enter();

			fflush(stdin);

			switch (chosen) {
			case '1':
				printf("\t\t\t\t\t\t請(qǐng)輸入需要更改的學(xué)生信息:\n");
				printf("\t\t\t\t\t\t請(qǐng)輸入學(xué)號(hào):");
				scanf_s("%s", info.number,(int)sizeof(info.number));
				strcpy_s(posNode->data.number, sizeof(posNode->data.number),info.number);

			
				printf("\t\t\t\t\t\tDone!\n");
				break;

			case '2':
				printf("\t\t\t\t\t\t請(qǐng)輸入需要更改的學(xué)生信息:\n");
				printf("\t\t\t\t\t\t請(qǐng)輸入姓名:");
				scanf_s("%s", info.name, (int)sizeof(info.name));
				fflush(stdin);
				strcpy_s(posNode->data.name, sizeof(posNode->data.name), info.name);
				printf("\t\t\t\t\t\tDone!\n");
				break;

			case '3':
				printf("\t\t\t\t\t\t請(qǐng)輸入%s的性別:", posNode->data.name);
				scanf_s("%s", info.gender, (int)sizeof(info.gender));
				fflush(stdin);
				strcpy_s(posNode->data.gender, sizeof(posNode->data.gender), info.gender);
				printf("\t\t\t\t\t\tDone!\n");
				break;

			case '4':
				printf("\t\t\t\t\t\t請(qǐng)輸入%s的年齡:", posNode->data.name);
				scanf_s("%hd", &info.age);
				posNode->data.age = info.age;
				printf("\t\t\t\t\t\tDone!\n");
				break;

			case '5':
				printf("\t\t\t\t\t\t請(qǐng)輸入%s的電話:", posNode->data.name);
				scanf_s("%s", info.tel, (int)sizeof(info.tel));
				fflush(stdin);
				strcpy_s(posNode->data.tel, sizeof(posNode->data.tel), info.tel);
				printf("\t\t\t\t\t\tDone!\n");
				break;
			case'Q':
				printf("\t\t\t\t\t\t退出此選項(xiàng)");
				return;
			default:
				printf("\n\t\t\t\t\t\t請(qǐng)重新輸入(1~5  and  (q quit ))\n");
				break;
			}


		}

	}
}

//指定位置查看
void printfToInput(struct Node* headNode, char number[12]) {

	struct Node* posNode = headNode->next;
	struct Node* posFrontNode = headNode;

	if (posNode == NULL) {
		printf("\t\t\t\t\t\t該表為空\(chéng)n");

	}else {
		while (strcmp(posNode->data.number,number)!=0) {
			posFrontNode = posNode;
			posNode = posNode->next;
				
			if (posNode == NULL) {
				printf("\t\t\t\t\t\t沒(méi)有找到該學(xué)生\n");
				return;
			}
		
		}

		printf("\t\t\t\t\t\t學(xué)號(hào)\t姓名\t性別\t年齡\t電話\n");
		printf("\n\t\t\t\t\t\t%06s\t%s\t%s\t%hd\t%s", posNode->data.number, posNode->data.name, posNode->data.gender, posNode->data.age, posNode->data.tel);

	}
	printf("\n");
}



//讀文件
bool  readInfoFromFile(struct Node* headNode, char* fileName) {

	struct student data;

	//打開文件
	FILE* fp;
	fopen_s(&fp, fileName, "r");

	if (fp == NULL) {
		fopen_s(&fp, fileName, "w+");
	}

	//2操作
	if (fp == NULL) { return EOF; }
	while (fscanf_s(fp, "%s\t%s\t%s\t%hd\t%s", data.number,(int)sizeof(data.number), data.name, (int)sizeof(data.name), data.gender, (int)sizeof(data.gender), &data.age, data.tel, (int)sizeof(data.tel)) != EOF) {

		insertNodeByHead(headNode, data);


	}



	//關(guān)閉文件
	if (fp == NULL) { return EOF; }
	fclose(fp);


	return 0;
}

//寫文件
bool  weiteInfoToFile(struct Node* headNode, char* fileName) {
	FILE* fp;
	fopen_s(&fp, fileName, "w");


	struct Node* pMove = headNode->next;



	while (pMove) {
		if (fp == NULL) { return EOF; }
		fprintf_s(fp, "\n\t\t\t\t\t\t %s\t%s\t%s\t%hd\t%s", pMove->data.number, pMove->data.name, pMove->data.gender, pMove->data.age, pMove->data.tel);

		pMove = pMove->next;
	}




	if (fp == NULL) { return EOF; }
	fclose(fp);
	return 0;
}

//求鏈表長(zhǎng)度
int LengthNode(struct Node* headNode) {

	int lenth = 0;
	struct Node* pMove = headNode->next;
	while (pMove) {
		lenth++;
		pMove = pMove->next;

	}
	return lenth;
}


//格式化模式!
void formattedLinkedList(struct Node* headNode) {
	struct Node* posNode ;

	if (headNode == NULL) {
		printf("\t\t\t\t\t\t該表為空\(chéng)n");
	}
	else {
		while (headNode != NULL) {
			posNode = headNode->next;

			free(headNode);
			headNode = posNode;

		}
	}
}

以上就是C語(yǔ)言實(shí)現(xiàn)學(xué)生管理系統(tǒng)的源碼分享的詳細(xì)內(nèi)容,更多關(guān)于C語(yǔ)言學(xué)生管理系統(tǒng)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • c語(yǔ)言同名標(biāo)靶點(diǎn)自動(dòng)匹配算法實(shí)現(xiàn)實(shí)例代碼

    c語(yǔ)言同名標(biāo)靶點(diǎn)自動(dòng)匹配算法實(shí)現(xiàn)實(shí)例代碼

    這篇文章主要介紹了c語(yǔ)言同名標(biāo)靶點(diǎn)自動(dòng)匹配算法實(shí)現(xiàn)實(shí)例代碼,分享了相關(guān)代碼示例,小編覺(jué)得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-02-02
  • C++執(zhí)行shell命令的多種實(shí)現(xiàn)方法

    C++執(zhí)行shell命令的多種實(shí)現(xiàn)方法

    在linux系統(tǒng)下,用C++程序執(zhí)行shell命令有多種方式,主要介紹了3中方法,具有一定的參考價(jià)值,感興趣的可以了解一下
    2021-11-11
  • C語(yǔ)言 socketpair用法案例講解

    C語(yǔ)言 socketpair用法案例講解

    這篇文章主要介紹了C語(yǔ)言 socketpair用法案例講解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • Species Tree 利用HashTable實(shí)現(xiàn)實(shí)例代碼

    Species Tree 利用HashTable實(shí)現(xiàn)實(shí)例代碼

    這篇文章主要介紹了Species Tree 利用HashTable實(shí)現(xiàn)實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下
    2017-01-01
  • C/C++中關(guān)于std::string的compare陷阱示例詳解

    C/C++中關(guān)于std::string的compare陷阱示例詳解

    這篇文章主要給大家介紹了關(guān)于C/C++中關(guān)于std::string的compare陷阱的相關(guān)資料,文中先對(duì)C/C++中的std::string進(jìn)行了簡(jiǎn)單的介紹,通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-11-11
  • C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)之單鏈表存儲(chǔ)詳解

    C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)之單鏈表存儲(chǔ)詳解

    鏈表是一種物理存儲(chǔ)結(jié)構(gòu)上非連續(xù)、非順序的存儲(chǔ)結(jié)構(gòu),數(shù)據(jù)元素的邏輯順序是通過(guò)鏈表中的指針鏈接次序?qū)崿F(xiàn)的。本文將和大家一起聊聊C語(yǔ)言中單鏈表的存儲(chǔ),感興趣的可以學(xué)習(xí)一下
    2022-07-07
  • C/C++高精度運(yùn)算(大整數(shù)運(yùn)算)詳細(xì)講解

    C/C++高精度運(yùn)算(大整數(shù)運(yùn)算)詳細(xì)講解

    高精度算法的本質(zhì)是把大數(shù)拆成若干固定長(zhǎng)度的塊,然后對(duì)每一塊進(jìn)行相應(yīng)的運(yùn)算,下面這篇文章主要給大家介紹了關(guān)于C/C++高精度運(yùn)算(大整數(shù)運(yùn)算)的相關(guān)資料,需要的朋友可以參考下
    2022-11-11
  • C語(yǔ)言每日練習(xí)之字符串反轉(zhuǎn)

    C語(yǔ)言每日練習(xí)之字符串反轉(zhuǎn)

    這篇文章主要介紹了C語(yǔ)言字符串反轉(zhuǎn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-11-11
  • C語(yǔ)言實(shí)現(xiàn)繪制余弦曲線

    C語(yǔ)言實(shí)現(xiàn)繪制余弦曲線

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)繪制余弦曲線的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-01-01
  • c++超細(xì)致講解引用

    c++超細(xì)致講解引用

    引用(reference)就是C++對(duì)C語(yǔ)言的重要擴(kuò)充。引用就是某一變量(目標(biāo))的一個(gè)別名,對(duì)引用的操作與對(duì)變量直接操作完全一樣
    2022-05-05

最新評(píng)論