第四章 函式與程式結構

2021-07-22 08:10:50 字數 2767 閱讀 5939

一、函式的基本知識

#include

#define maxline 1000

int getline(char line, int max);

int strindex(char source, char searchfor);

char pattern = "ould";

int main()

return found;

}int getline(char s, int lim)

return -1;

}二、返回非整型值的函式

#include

#include

#define maxline 100

double atof(char s);

int getline(char c, int n);

int main()

return sign*val / power;

int getline(char s, int lim)

三、外部變數

#include

#include //為了使用atof()函式

#include //為了使用isdigit()函式

#define maxop 100    //運算元或運算子的最大長度

#define number '0'   //標識找到乙個數

int getop(char);

void push(double);

double pop(void);

//逆波蘭計算器

int main()

}return 0;

}#define maxval 100//棧val的最大深度

int sp = 0;//下乙個空閒棧位置

double val[maxval];//值棧

void push(double f)

double pop(void)

int getch(void);

void ungetch(int);

int getop(char s)

void ungetch(int c)

四、作用域規則

名字的作用域指的是程式中可以使用該名字的部分。

變數宣告用於說明變數的屬性(主要是變數型別),而變數定義除此之外還將引起儲存器的分配。

乙個外部變數只能在某個檔案中定義一次,而其他檔案可以通過extern宣告來訪問它。外部變數的定義中必須指定陣列長度,但extern宣告則不一定要指定陣列的長度。

五、標頭檔案

就逆波蘭計數器的程式中,**分割如下:

main.c:

#include

#include

#include "calc.h"

#define maxop   100

main(){

calc.h :

#define number    '0'

void push(double);

double pop(void);

int getop(char s);

int getch(void);

void ungetch(int);

getop.c:

#include

#include

#include "calc.h"

int getop(char s){

stack.c:

#include

// #include "calc.h"

#define  maxval    100

int sp;

double val[maxval];

void push(double){

double pop(void){

getch.c:

#include

// #include "calc.h"  

#define bufsize 100

char buf[bufsize];

int bufp=0;

int getch(void){

void ungetch(int) {

六、靜態變數

通過static限定外部物件,可以達到隱藏外部物件的目的。也可以用於宣告函式,則該函式名除了對該函式宣告所在的檔案可見外,其他檔案都無法訪問。

static型別的內部變數是一種只能在某個特定函式中使用但一直佔據儲存空間的變數。

七、暫存器變數

將register變數放在機器的暫存器中,這樣使程式更小,執行速度更快。

register宣告只適用於自動變數以及函式的形式引數。

無論暫存器變數實際上是不是存放在暫存器中,它的位址都是不可訪問的。

八、程式塊結構

不允許在函式中定義函式。

靜態變數只在第一次進入程式塊時被初始化一次。

九、初始化

對於外部變數和靜態變數來說,初始化表示式必須是常量表示式,且只初始化一次。

十、遞迴

函式遞迴呼叫自身時,每次呼叫都會得到乙個與以前的自動變數集合不同的新的自動變數。

遞迴效率低(遞迴呼叫中必須在某個地方維護乙個儲存處理值的棧),但遞迴**比較緊湊

十一、c預處理器

1、檔案包含

#include <>

#include " "

2、巨集替換

#define   名字   替換文字

3、條件包含

#if

#endif

#elif

#ifdef

#ifndef





第四章 函式

樣例1,不帶引數的函式 create or replace function helloworld return varchar2 is begin return 朋友,您好 end 呼叫函式 語句的呼叫 select helloworld from dual 第二種呼叫方法 pl sql塊 beg...

第四章 函式

知識點 1 函式 function 可接受輸入 執行指令 返回輸出的復合語句。呼叫函式,意味著提供輸入。每乙個輸入就是乙個引數,為函式提供引數稱之為 傳參 2 呼叫函式的語句 函式名 逗號分隔的引數 f x x 2 語句左側定義乙個函式 f 接受乙個引數 x 右側是函式具體定義,利用 x 中傳遞的引...

第四章 迴圈結構

迴圈要素 1.初始化 2.迴圈條件 3.迴圈體 4.迭代 while迴圈 while 迴圈條件 迴圈的執行順序 1.程式執行迴圈前,首先判斷迴圈條件的值是否是true 2.如果迴圈條件的值為true,執行迴圈體中的內容 3.如果迴圈條件的值為false,將跳過迴圈體直接執行迴圈後面的程式 4.迴圈體...