C語言中char*和char[]用法區別
C語言中char*和char[]用法區別,一般來説,很多人會覺得這兩個定義效果一樣,其實差別很大。下面小編給大家介紹C語言中char*和char[]用法區別,歡迎閲讀!
C語言中char*和char[]用法區別本質上來説,char *s定義了一個char型的指針,它只知道所指向的內存單元,並不知道這個內存單元有多大,所以:
當char *s = "hello";後,不能使用s[0]='a';語句進行賦值。這是將提示內存不能為"written"。
當用char s[]="hello";後,完全可以使用s[0]='a';進行賦值,這是常規的數組操作。
若定義:
char s[] = "hello";
char *p = s;
也可以使用p[0] = 'a';因為這是p ==s,都是指向數組的指針。
下面看另外一種定義:
char *s = (char *)malloc(n);//其中n為要開闢空間的.大小
這句話其實相當於:
char s[n];
定義的也是一個指向數組的指針,便可進行數組的下標操作
例子
#include
int main(int argc, char* argv[]) {
char* buf1 = "this is a test";
char buf2[] = "this is a test";
printf("size of buf1: %d", sizeof(buf1));
printf("size of buf2: %d", sizeof(buf2));
return 0;
}
結果是:
$ > ./main
size of buf1: 4
size of buf2: 15
-
Swift與C語言指針結合使用實例
引導語:Swift可與Object-C共同運行於MACOS和iOS平台,用於搭建基於蘋果平台的應用程序。以下是本站小編分享給大家的Swift與C語言指針結合使用實例,歡迎閲讀!####用以輸入/輸出的參數指針C和Objective-C並不支持多返回值,所以CocoaAPI中常常將指針作為一種在方法間...
-
C語言數組的定義及引用
引導語:數組是在程序設計中,為了處理方便,把具有相同類型的若干變量按有序的形式組織起來的一種形式。以下是本站小編分享給大家的C語言數組,希望大家喜歡!1.1一維數組的定義、初始化和引用1.一維數組的定義方式為:類型説明符數組名[常量表達式](1)數組名的命名方法...
-
C語言插入排序算法及實例代碼
插入排序是排序算法的一種,下面小編為大家整理了C語言插入排序算法及實例代碼,希望能幫到大家!這裏以從小到大排序為例進行講解。基本思想及舉例説明插入排序的基本思想是,將元素逐個添加到已經排序好的數組中去,同時要求,插入的元素必須在正確的位置,這樣原來排序好...
-
嵌入式C語言編程小知識
嵌入式系統是用來控制或者監視機器、裝置、工廠等大規模設備的系統。下面為大家整理了一些嵌入式C語言編程小知識,一起來看看吧!1.流水線被指令填滿時才能發揮最大效能即每時鐘週期完成一條指令的執行(僅指單週期指令)。如果程序發生跳轉,流水線會被清空,這將需要...