程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C語言中的幾個容易混淆的知識點總結

C語言中的幾個容易混淆的知識點總結

編輯:關於C語言

1、指針數組與數組指針

           (1)int* q[10]; 指針數組,聲明一個指向含有10個整型指針元素的數組。

             (2)int  (*p)[10];  數組指針,聲明一個指向10個整型數組的指針。

               指針數組是元素為指針的數組,而數組指針是元素為指向數組的指針。

 

 

2、函數指針與指針函數

         (1)int (*p)max(int a,int b);   函數指針,p為指向參數類型為int,int,返回值為int的函數,可以將該類型的函數作為首地址賦值給p。

          (2)int * max(int a,int b);    指針函數,返回值為指針類型的函數被稱作指針函數。

 

3、用字符串常量初始化指針與數組

       (1)char *p= “gooseberry”; 字符指針,初始化指針時所創建的字符串常量被定義為只讀,如果試圖通過指針修改這個字符串值,程序會出現未定義的行為。

      (2) char a[] = “gooseberry”;字符數組,與指針相反,由字符串常量初始化的數組是可以修改的。比如下面的語句:

strncpy(a,"black",5);將數組的值改為blackberry。

 

4、常量指針與指針常量

(1)常量指針:指向常量的指針,指針所指向地址的內容是不可被修改的。

   const int *pi=&a;或者int const *pi, *pi是常量,不能將*p作為左值進行操作。

(2)指針常量:不可修改地址的指針,但是可以對其指向的地址的內容進行修改。還有,指針常量在定義時必須同時賦值,指針常量也不能釋放。

 定義" int *const pi=&a;",pi是常量,不能作為左值進行操作,但是允許修改間接訪問值,即*pi可以被修改。


作者xuhongwei0411

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved