首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C語言入門第二天:函數定義、參數傳遞、作用域與輸入輸出實戰

     編輯:關於C語言

C語言入門第二天:函數定義、參數傳遞、作用域與輸入輸出實戰

函數(Function),又稱方法,是實現特定功能的代碼塊。一個C程序有且僅有一個 main() 主函數,其他函數均由主函數直接或間接調用。今天我們通過實例掌握函數定義、返回值類型、參數傳遞機制、變量作用域以及基本的輸入輸出函數。

一、函數基礎與返回值類型

#include <stdio.h>

void show() {
    printf("I like c language");
}

int main() {
    show();
    return 0;
}
  • void show():void 表示無返回值,函數體內不能有 return 值(可單獨用 return; 退出)。
  • int main():int 要求返回整數,通常以 return 0; 表示正常結束。

二、帶參數與返回值的函數

#include <stdio.h>

int add(int x, int y) {
    return x + y;
}

int main() {
    int a = add(1, 2);
    printf("%d\n", a);  // 輸出 3
    return 0;
}
  • 形式參數(形參):函數定義時的參數(如 int x, int y),僅在函數調用時分配內存,調用結束即釋放。
  • 實際參數(實參):調用時傳入的具體值(如 1, 2 或變量)。
  • 實參與形參的數據類型必須一致,調用時發生值傳遞(複製),互不影響內存地址。

三、變量作用域:局部 vs 全局

#include <stdio.h>

int x = 567;  // 全局變量

void show() {
    printf("%d\n", x);  // 訪問全局變量
}

int main() {
    show();
    printf("%d\n", x);
    return 0;
}
  • 全局變量:定義在所有函數外部,程序啟動時分配內存,程序結束才釋放,全程序可見。
  • 局部變量:定義在函數內部(含形參),進入函數分配,退出釋放,僅在本函數有效。
  • 同名覆蓋:局部變量與全局變量同名時,在局部範圍內覆蓋全局變量。
  • 最佳實踐:若函數需修改全局變量,應在函數前添加註釋說明修改哪些變量、目的及修改值,便於維護。

四、格式化輸出 printf 與類型轉換

printf("%d+%d\t=%d\n", 15, 16, 15+16);
printf("%d+%d\t=%d\n", 15, 16, 15-16);
printf("%d+%d\t=%d\n", 15, 16, 15*16);
printf("%d+%d\t=%f\n", 15, 16, (float)15/16);
  • %d 輸出整數,%f 輸出浮點數(含小數部分)。
  • 整數相除結果仍為整數(截斷小數),需用強制類型轉換 (float) 將其中一個操作數轉為浮點數,才能得到小數結果。

五、標準輸入 scanf 與地址運算符 &

int a;
scanf("%d", &a);  // &a 取變量 a 的內存地址
printf("%d", a);
  • scanf 從鍵盤讀取輸入,& 是「取地址運算符」,告訴 scanf 將讀取的值存放到變量 a 的內存位置。
  • 忘記 & 是新手最常見錯誤之一,會導致程序崩潰或輸入無效。

六、字符輸入輸出:getchar / putchar

char c;
c = getchar();  // 從標準輸入讀取一個字符
putchar(c);     // 向標準輸出寫入一個字符
  • getchar() 返回讀取的字符(int 類型,可存入 char)。
  • putchar(ch) 輸出單個字符,參數可為字符常量 'a' 或字符變量。
  • 連續調用可實現多字符交互,如連續三次 getchar/putchar 可輸入輸出 "abc"。

總結

第二天核心知識點:函數封裝代碼、void/int 返回類型、值傳遞機制(形參/實參)、局部/全局變量作用域與生命週期、printf/scanf 格式化 I/O 及 & 取地址、getchar/putchar 字符級 I/O。熟練掌握這些是編寫結構化C程序的基石。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved