日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

C语言-定义与初始化总结

發布時間:2025/6/17 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C语言-定义与初始化总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

  • 1 實型
  • 2 標識符
  • 3 變量
  • 4 一維數組
    • 4.1 注意點
    • 4.2 初始化
  • 5 二維數組
    • 5.1 初始化
  • 6 字符數組
    • 6.1 初始化
    • 6.2 與字符指針的比較
  • 7 結構體
    • 7.1 聲明定義
    • 7.2 初始化
    • 7.3 結構體指針
  • 8 共用體
  • 9 枚舉

1 實型

實型分為十進制小數類型和指數形式,其中指數形式,規定以字母e和E代表以10為底的指數,但應注意:e或E之前必須有數字,且e或E后面必須為整數。

  • 正確示例:12.34e3、-346.87e-25、0.145E-25、1.2e0、123e03
  • 錯誤示例:e4、12e2.5

2 標識符

除了變量名,后面還會講到函數名、宏名、結構體名等,它們都是標識符。標識符只能由字母(A~Z, a~z)、數字(0-9)和下劃線(_)組成,并且第一個字符必須是字母或下劃線,不能是數字。C語言標識符區分大小寫。

  • 正確示例:a、x、x3、BOOK_1、sum5
  • 錯誤示例:3s、-3x、bowy-1、s*T

C語言雖然不限制標識符的長度,但是它受到不同編譯器的限制,同時也受到操作系統的限制。例如在某個編譯器中規定標識符前128位有效,當兩個標識符前128位相同時,則被認為是同一個標識符。

3 變量

可以定義多個變量并為多個變量賦初值,如

int a, b, c=5; // 正確 int a=3, b=3, c=3; // 正確 int a=b=c=3; // 錯誤

4 一維數組

4.1 注意點

  • 數組大小可以使用常量或者符號常量,如int a[3+5];,但是不能使用變量,如int a[n];但C99支持這種做法
  • 在被調用函數中定義數組,可以使用變量,如
void func(int n) {int a[2*n]; }
  • 如果指定數組為靜態數組,則不能使用可變長數組,如static int a[2*n];就是錯誤的。

4.2 初始化

  • 在定義數組時對全部數組元素賦初值,如
int a[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
  • 可以對數組中一部分元素賦初值,則只給前五個元素賦值,后5個賦值0,如
int a[10] = {0, 1, 2, 3, 4};
  • 可以初始化全部為0,如
int a[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; int a[10] = {0};
  • 初始化可以不指定長度,如
int a[] = {1, 2, 3, 4, 5};

5 二維數組

5.1 初始化

  • 分行給二維數組賦初值,如
int a[3][4] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};
  • 可以將數據寫在一個括號里賦初值,如
int a[3][4] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};
  • 可以對部分元素賦初值,這樣對各行第一個元素賦初值,其他的為0,如
int a[3][4] = {{1}, {5}, {9}}; /*1 0 0 05 0 0 0 9 0 0 0 */
  • 可以對各行中某一元素賦初值,如
int a[3][4] = {{1}, {0, 6}, {0, 0, 11}}; /*1 0 0 00 6 0 0 0 0 11 0 */
  • 可以只對某行幾個元素賦初值,如
int a[3][4] = {{1}, {5, 6}}; /*1 0 0 05 6 0 0 0 0 0 0 */
  • 也可以對其中一行不賦值,如
int a[3][4] = {{1}, {}, {9}}; /*1 0 0 00 0 0 0 9 0 0 0 */
  • 如果對全部元素賦初值,則一維長度可以省略,二者等價,如
int a[][4] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}; int a[3][4] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};
  • 可以只對部分元素賦初值并省略一維長度,如
int a[][4] = {{0, 0, 3}, {}, {0, 10}}; /*0 0 3 00 0 0 0 0 10 0 0 */

6 字符數組

6.1 初始化

  • 把各個字符依次賦值給數組,數量大于數組長度會報錯,數量小于數組長度會將剩下的位置賦值為\0,如
char c[10] = {'I', ' ', 'a', 'm', ' ', 'h', 'a', 'p', 'p', 'y'};
  • 二維字符數組,如
char c[2][3] = {{'y', 'o', 'u'}, {'a', 'r', 'e'}};
  • 用字符串常量來初始化字符數組,三者等價,此時系統會在末尾加上一個\0,所以實際長度會是字符串長度+1,若給定了字符數組的長度,而字符串長度小于字符數組定義長度,其余位置會賦值\0,如
char c[] = {"I am happy"}; char c[] = "I am happy"; // 可以省略花括號 char c[] = {'I', ' ', 'a', 'm', ' ', 'h', 'a', 'p', 'p', 'y', '\0'}; // 與上面等價

6.2 與字符指針的比較

  • 字符數組存放若干元素,字符指針存放字符串的首地址
  • 可以對字符指針賦值,但不能對數組名賦值,如
char *p; p = "I love China"; // 正確char c[14]; c = "I love China"; // 錯誤 c[14] = "I love China"; // 錯誤
  • 字符數組中各元素的值是可以改變的(可以再次賦值),字符指針指向的字符串常量是不能再次賦值的,如
char a[] = "china"; char *b = "china"; a[2] = 'r'; // 正確 b[2] = 'r'; // 錯誤

7 結構體

7.1 聲明定義

  • 先聲明,再定義,如
struct Student {char name[20];int age; }; struct Student student1, student2; // 定義了兩個Student結構體
  • 在聲明類型的同時定義變量,如
struct Student {char name[20];int age; }student1, student2;
  • 匿名結構體,直接定義變量,如
struct {char name[20];int age; }student1, student2;

7.2 初始化

  • 定義結構體并初始化
struct Student {char name[20];int age; }student1 = {"xiaoming", 20};
  • C99允許對某個成員初始化,則其他變量默認初始化0,如
struct Student student1={.age=12}; // 只對age進行初始化
  • 同類型結構體變量可以相互賦值,如
student1 = student2;
  • 定義結構體數組并初始化,如
struct Student {char name[20];int age; }student[2] = {"xiaoming", 20, "lihao", 15};
  • 定義時初始化,如
struct Student student[2] = {"xiaoming", 20, "lihao", 15};

7.3 結構體指針

若struct Student *p = student1;,使用p->age代替(*p).age(.優先級大于*,括號不能省),以下三種寫法等價

student1.age; (*p).age; p->age;

8 共用體

共用體union可以用一段內存存放不同類型的變量,它在每一瞬間只能存放其中一個成員,對共用體變量多次賦值,只保留最后一次賦值的值,共用體變量所占的內存長度等于最長的成員長度,初始化跟結構體有點像。

  • 聲明并定義共用體,如
union Data {int i;char ch;float f; }a, b, c;
  • 可以聲明和定義分開,如
union Data {int i;char ch;float f; }; union Data a, b, c;
  • 初始化方法,如
union Data {int i;char ch;float f; }a = {1, 'a', 1.5}; // 錯誤,不能同時初始化3個 union Data a = {16}; // 正確 union Data a = {.ch='j'}; // 正確 C99新增
  • 對共用體賦值要指明賦值對象,如
a.ch = 'A'; // 正確 a.f = 1.5; // 正確 a.i = 40; // 正確 a = 1; // 錯誤,沒有指明賦值對象
  • C99 允許共用體之間相互賦值,允許共用體變量作為函數參數

9 枚舉

如果變量有幾種可能的值,則可以定義枚舉,即把可能的值一一列舉出來,變量的值只限于舉例出來的值范圍內,每一個枚舉變量范圍取值代表一個整數,從0開始遞增。

  • 聲明枚舉類型,如
enum Weekday {sun, mon, tue, wed, thu, fri, sat};
  • 定義枚舉類型,如
enum Weekday workday, weedkend;
  • 賦值,如
workday = mon; // 正確 workday = sun; // 正確 Weekday = monday; // 錯誤,monday不是范圍類的取值
  • 可以人為的指定枚舉元素的取值,如
enum Weekday {sun=7, mon=1, tue, wed, thu, fri, sat}; // sun=7, mon=1, tue=2, wed=3, thu=4, fri=5, sat=6
  • 枚舉元素可以用來做判斷比較,通過初始化時的整數進行比較,如
if (workday == mon){} // 正確 if (workday > sun){} // 正確

總結

以上是生活随笔為你收集整理的C语言-定义与初始化总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。