Ⅰ c語言中,如何定義一個『指針數組』,這個『指針數組』專門用來存放『數組指針』。
指針數組定義int*p[n];
[]優先順序高,先與p結合成為一個數組,再由int*說明這是一個整型指針數組,它有n個指針類型的數組元素。這里執行p+1時,則p指向下一個數組元素,
這樣賦值是錯誤的:p=a;因為p是個不可知的表示,只存在p[0]、p[1]、p[2]...p[n-1],而且它們分別是指針變數可以用來存放變數地址。但可以這樣*p=a;這里*p表示指針數組第一個元素的值,a的首地址的值。
數組指針定義int(*p)[n];
()優先順序高,首先說明p是一個指歷亮針,指向一個整型的一維數組,這個一維數組的長度是n,也可以說是p的步長。也就是說執行p+1時,p要跨過n個整型數據的長度。
如要將二維數組賦給一指針,應這樣賦值:
int a[3][4];
int(*p)[4];//該語句是定義一個數組指針,指向含4個元素的一維數組。
p=a;//將該二維數肢吵寬組的首地址賦給p,也就是a[0]或&a[0][0]
p++;//該語句執行過後,也就是p=p+1;p跨過行a[0][]指向了行a[1][]
(1)c語言如何定義數組存儲數據擴展閱讀:
與數組指針關系
數組指針是指向數組首元素的地址的指針,其本質為指針(這個指針存放的是數組首地址的地址,相當於2級指針,這個指針不可移動);指針數組是數組元素為指針的數組,其本質為數組。
例如:*p[2]是指針數組,實質是一個數組,裡面的兩個元素都是指針,[]的優先順序比*的優先順序高,p先與[]結合,形成數組p[2],有兩個元素的數組,再與*結合,表示此數組是指針類型的,每個數組元素相當於一個指針變數
與二維數組對比
二維數組:如char string_1[10][10]只要定義了一個二維數組,無論賦不賦值,系統都會給他分配相應空間,而且該空間一定是連續的。其每個元素表示一個字元。我們可以通過指定下標對其元素進行修改。
指針數組:如char*str_B[5]系統至少會分配5個連續的空間用來存儲5個元素,表示str_B是一個5個元素的數組,每個元素是一個指向字元型數據的一個指針。
如果我做這樣的定義:
char a[3][8]={"gain","much","strong"};
char*n[3]={"gain","much","strong"};
他們在內存的存儲方式分別如右圖所示,可見,系統給數組a分配了
3×8的空間,而給n分配的空間則取決於具體字元串的長度。
此外,系統分配給a的空間是連續的,而給n分配的空間則不一定連續。
由此可見,相比於比二維字元數組,指針數組有明顯的優點:一是指針數組中每個元素所指的字元串不必限制在相同的字元長度;二是訪問指針數組中的一個元素是用指針間接進行的,效率比下標方式要高。但是二維字元數組卻可以通過下標很方便的修改某一元素的值,而指針數組卻無法這么做。
舉例編輯
數組指針:
#include<stdio.h>
int main()
{
char c[][4]={"哥","哥","我","岸","上","走"};//UTF-8:一個漢字=3個位元組
char(*p)[4];
int i;p=c;//將指針定位於c[0]
for(i=0;i<=5;i++)
{
printf("%s,",*(p+i));//或碰告者將*(p+i)替換成*p++
}
printf(" ");
for(i=5;i>=0;i--)
{
printf("%s,",*(p+i));//或者將*(p+i)替換成*--p
}
return 0;
}
指針數組:
#include<stdio.h>
int main()
{
int i;
char*pch[6]={"妹","妹","你","坐","船","頭"};
for(i=0;i<6;i++){
printf("%s,",pch<i>);
}
printf(" ");
for(i=5;i>=0;i--){
printf("%s ",pch<i>);
}
return 0;
}
Ⅱ C語言中一維數組正確的定義
符號常量是用一個標識符來表示一個常量,一維數組的定義方法為:類型說明符+數組名+[常量表達式];
類型說明符是任一種基本數據類型或構造數據類型。數組名是用戶定義的數組標識符。方括弧中的常量表達式表示數組元素的個數或者長度,可以是常量或符號常量,不能為變數。
例如:
1、int x[8]; 表示定義一個整型數組x,數組長度為8.
2、float a[8],b[10];表示定義一個實型數組b,數組長度為8,一個實型數組c,數組長度為10
3、 ch[15]; 表示定義一個字元數組ch,數組長度為15。
(2)c語言如何定義數組存儲數據擴展閱讀
在程序中可以使用下標變數,即說明這些變數的整體為數組,數組中的每個變數的數據類型是相同的。當數組中每個元素都只帶有一個下標時,稱這樣的數組為一維數組。
一維數組是由數字組成的以單純的排序結構排列的結構單一的數組。一維數組是計算機程序中最基本的數組。二維及多維數組可以看作是一維數組的多次疊加產生的。
數組是計算機編程中的重要概念,運用數組可以方便地處理大規模的數據。
Ⅲ c語言怎麼定義數組
首先雙擊啟動visual studio 2015,如果你使用的是其他版本的vs也是可以的。單擊「文件」-「新建」-「項目」,選擇visual c++,然後是「空項目」。
12怎麼下載visual studio2015及安裝教程
Ⅳ C語言怎麼定義多個數組儲存字元串,又要求逐個輸入
需要准備的材料分別有:電腦陵虛、C語言編譯器。
1、首先,枝含打開C語言編譯器,新建一個初始.cpp文件,例如:test.cpp。
Ⅳ C語言如何定義一個數組存放字元和數字
1、首先,編寫頭文件以及main函數主框架。
注意事項:
盡管C語言提供了許多低級處理的功能,但仍然保持著跨平台的特性,以一個標准規格寫出的C語言程序可在包括類似嵌入式處理器以及超級計算機等作業平台的許多計算機平台上進行編譯。
Ⅵ C語言中如何定義數組
數組定義的三種方式
1、第一種
int []a = newint[5];
a[0] = 10;
2、第二種
int []c = newint[]{1,2,3};
3、第三種
int []i ={1,2,3,4};
4、錯誤的寫法
int []i1 = [1,2,3,4];
System.out.println(Arrays.toString(c));
5、總之,具體的元素不能被【】包裹。【】包裹的應該是數組的數量。
(6)c語言如何定義數組存儲數據擴展閱讀
數組的注意事項:
1、 數組中每個元素的數據類型必須相同,對於inta[4];,每個元素都必須為 int。
2、 數組長度 length最好是整數或者常量表達式,
3、 訪問數組元素時,下標的取值范圍為 0 ≤ index < length,
參考資料
網路-數組
Ⅶ C語言中如何定義數組
在C語言中使用數組必須先進行定義。一維數組的定義方式為:
類型說明符 數組名 [常量表達式];
其中,類型說明符是任一種基本數據類型或構造數據類型。數組名是用戶定義的數組標識符。方括弧中的常量表達式表示數據元素的個數,也稱為數組的長度。例如:
Ⅷ c語言數組定義的幾種方式
數組的定義
數組就是指用於存儲同一類型數據的集合,一個數組實際上就是一連串的變數,數組按照使用可以分為一維數組、二維數組、多維數組
數組定義的方式
數組定義的方式有四種形式,分別是:
(1)類型名[] 數組名;
(2)類型名[] 數組名 = { 初始值列表 };
(3)類型名[] 數組名 = new 類型名[ 數組大小 ];
(4)類型名[] 數組名 = new 類型名[ 數組大小 ] { 初始值列表 };
數據類型:指的是數組元素的數據類型,常見的有整形、浮點型、與字元型等
數組名:是用來統一這組相同數據類型元素的名稱,其命名規則和變數的相同