bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

C語言中的goto語句和函數(上)-創新互聯

學習目標:
  • 掌握 C 入門知識
  • 學習自律+1 +1 +1 +1…+1

學習內容:
  1. goto語句
  2. 函數:(1) 函數的參數(2) 函數的調用

一.goto語句

goto語句:終止程序在某些深度嵌套的結構的處理過程(可以跳轉)

創新互聯從2013年成立,先為羅湖等服務建站,羅湖等地企業,進行企業商務咨詢服務。為羅湖企業網站制作PC+手機+微官網三網同步一站式服務解決您的所有建站問題。

1.代碼示例

#includeint main()
{again:
		printf("hello\n");
		printf("hello\n");
		printf("hihi\n");
		goto again;
		return 0;
}
  1. 用goto語句實現一個關機程序

程序運行起來后,倒計時60秒關機,如果輸入好好學習就可以取消關機。
使用命令行關機
shutdown -s -t 關機
shutdown -a 取消關機

#include#include#includeint main()
{char arr[20] = {0 };
	system("shutdown - s - t 60");
again:
	printf("請注意,你的電腦將在一分鐘內關機,如果輸入:好好學習,就取消關機\n");
	scanf("%s", arr);
	if (strcmp(arr, "好好學習")==0)
	{system("shutdown - a");
	}
	else
	{goto again;
	}
	return 0;
}

C語言strcmp()函數:比較兩個字符串。兩個字符串相等時返回0.

所以可以寫成strcmp(arr, “好好學習”) == 0


二.掌握函數基本語法
  1. 函數是什么

(1).函數就是 C 語言的模塊,一塊一塊的,有較強的獨立性,可以相互調用,換句話說,C 語言中,一個函數里面可以調用 n 個函數,即大函數調用小函數,小函數又調用“小小”函數。這就是結構化程序設計,所以面向過程的語言又叫結構化語言。
(2).函數就是一系列 C 語句的集合,能完成某個特定的功能。需要該功能的時候直接調用該函數即可,不用每次都堆疊代碼。需要修改該功能時,也只需要修改和維護這一個函數即可。
2.函數的分類

(1).庫函數:庫函數(Library function)是把函數放到庫里,供別人使用的一種方式。一般是指編譯器提供的可在c源程序中調用的函數。可分為兩類,一類是c語言標準規定的庫函數,一類是編譯器特定的庫函數。

(2).自定義函數:自定義函數是程序員自己聲明和定義的,是程序員補充的工具,不管是現成工具的還是補充的工具,都是工具,對使用者來說都一樣,沒有區別。在C語言中,函數的調用非常靈活,可以獨占一行語句,也可以當成常量賦值給變量,也可以當成函數的參數。


  1. 庫函數

(1)strcpy函數:C 庫函數char *strcpy(char *dest, const char *src) 把src 所指向的字符串復制到dest(\0也可以拷貝)。 需要注意的是如果目標數組dest 不夠大,而源字符串的長度又太長,可能會造成緩沖溢出的情況。

#include#include#includeint main()
{char str1[] = "Sample string";
	char str2[40];
	char str3[40];
	strcpy(str2, str1);
	strcpy(str3, "copy successful");
	printf("str1:%s\nstr2:%s\nstr3:%s\n", str1, str2, str3);
	return 0;
}

(2)memset函數:memset 函數是內存賦值函數,用來給某一塊內存空間進行賦值的。其原型是:voidmemset(void_Dst, int _Val, size_t _Size)

_Dst是目標起始地址,_Val是要賦的值,_Size是要賦值的字節數。

#include#includeint main()
{char str[] = "hello world";
	memset(str, 'x', 5);
	printf("%s\n", str);
	return 0;
}
  1. 自定義函數(有函數名 返回值類型和函數參數)

(1).找出兩個整數之間的大值

#includeint get_max(int x,int y)
	if (x >y)
		return x;
	else
		return y;
}
int main()
{int a = 0;
	int b = 0;
	scanf("%d %d", &a, &b);
	int m = get_max(a, b);//自定義函數
	printf("%d\n", m);
	return 0;
}

并不是說函數都有返回,有的不用返回可以寫成void get_max()
以上get_max就是一個自定義函數

  1. 函數的參數

(1).函數的實參:

函數被調用時給出的參數包含了實實在在的數據,會被函數內部的代碼使用,所以稱為實際參數,簡稱實參
實參可以是變量 常量 表達式 函數等

#includeget_max(int x,int y)
{if (x >y)
		return x;
	else
		return y;
}
int main()
{int a = 0;
	int b = 0;
	scanf("%d %d", &a, &b);
	//int m = get_max(a, b);//變量
	//int m = get_max(a, 3);//常量
	//int m = get_max(a, 2+3);//表達式
	int m = get_max(a, get_max(4, 5));//函數
	printf("%d\n", m);
	return 0;
}

(2).函數的形參:
在函數定義中出現的參數可以看做是一個占位符,它沒有數據,只能等到函數被調用時接收傳遞進來的數據,所以稱為形式參數,簡稱形參
形式參數當函數調用完之后就自動銷毀了

(3):示例:寫一個函數可以交換兩個整形的變量內容
在這里插入圖片描述
由圖片可知,最后a和b的值并沒有交換,這是為什么呢?

a,b是實參;x,y是形參形參是實參的一份臨時拷貝,對形參的修改是不會影響實參的
在這里插入圖片描述
通過調試可以知道,當a,b傳參過去給x,y但是x,y的地址和a,b并不相同,所以交換后交換的只是x,y的值對a,b并無影響

所以可以采用指針的方式*
在這里插入圖片描述
在這里插入圖片描述
6.函數的調用

(1).傳值調用:
傳值調用: 函數的形參和實參分別占有不同的內存塊,對形參的修改不會影響實參

#includevoid Swap1(int x, int y)
{int tmp = x;
	x = y;
	y = tmp;
}
int main()
{int a = 0;
	int b = 0;
	scanf("%d %d", &a, &b);
	printf("交換前:a=%d,b=%d\n", a, b);
	Swap1(a, b);
	printf("交換后:a=%d,b=%d\n", a, b);
	return 0;
}

(2).傳址調用:
將實參的地址傳遞給函數,在函數內對形參進行操作等同于對實參進行相同的操作,在函數調用結束返回后,形參被釋放,實參的內容是對形參進行操作后的結果。

#includevoid Swap2(int* pa, int* pb)
{int tmp = *pa;
	*pa = *pb;
	*pb = tmp;
}
int main()
{int a = 0;
	int b = 0;
	scanf("%d %d", &a, &b);
	printf("交換前:a=%d,b=%d\n", a, b);
	Swap2(&a, &b);
	printf("交換后:a=%d,b=%d\n", a, b);
	return 0;
}

(3).注意
下圖這種方式也是一種傳值方式,雖然地址傳過去是對的但是px,py交換的只是地址,a,b的值并無影響。
在這里插入圖片描述


學習產出:
  • 技術筆記 2 遍
  • 技術博客 1 篇

你是否還在尋找穩定的海外服務器提供商?創新互聯www.cdcxhl.cn海外機房具備T級流量清洗系統配攻擊溯源,準確流量調度確保服務器高可用性,企業級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧

網頁名稱:C語言中的goto語句和函數(上)-創新互聯
本文來源:http://vcdvsql.cn/article42/cdijhc.html

成都網站建設公司_創新互聯,為您提供網站建設網頁設計公司企業網站制作外貿建站營銷型網站建設網站內鏈

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

外貿網站建設