『壹』 c語言中的下標是什麼意思
c語言中的下標是定義數組a[]和數組b[n],下標是用在數組中的;
a[1]和b[1]就是下標相同的一個元素,數組a[1]中的數滿足條件的之後就做移位計算,是減小左移,右移增加;
例:
inta[5]={1,2,3,4,5};
printf(「%d,%d,%d,%d,%d」,a[0],a[1],a[2],a[3],a[4]);//會輸出1,2,3,4,5
a[0]=10;
printf(「%d」,a[0]);//輸出10;
(1)下標法c語言擴展閱讀
基本的算數運算符
(1)、+加法運算或正值運算符
4+4、+5
(2)、-減法運算或負值運算符
6-4、-10、-29
(3)、乘法運算
注意符號,不是x,而是;
(4)、/除法運算
注意符號,不是÷,也不是,而是/;
整數除於整數,還是整數。1/2的值是0,這個並不是二分之一,不會四捨五入,直接截斷取值;
(5)、%取余運算
取余:即兩個整數相除之後的余數;
注意:%兩側只能是整數,正負性取決於%左側的數值;
『貳』 關於C語言編程 的下標是指什麼
比如下標為1的則表示數組里的第2個數,數組的下標是從0開始的。
例如a數組為[1,2,3],b數組為[3,3,5],所以a[0]+b[0]=4,a[1]+b[1]=5
『叄』 C語言下標怎麼打
分兩種情況。
1 若你說的下標是指排版列印時在正常文字右下角的符號,那麼,C語言編譯器是文本編輯器,不能排版出這種效果。
2 若你說的是數組下標,則是這種寫:
int a[20];
a[0]=1; // [0]就是下標,表示數組第一個元素。
『肆』 C語言二維數組下標表示方法
下標就是在[]里的,他是重0開頭的。具體表示如下:
int
a[5];//5代表a最後個數組里的元素個數
是初學者吧!
要努力喲!
『伍』 C語言數組下標
下標可以是變數 也可以是常量。直接說a[0],a[1],a[2],a[3]這樣的下標就是常量。
對於訪問來說, 不在意是變數還是常量, 系統只是需要一個值, 作為偏移量
不管是變數還是常量, 訪問的時候 肯定是一個特定值, 而系統要的 無非是這樣一個偏移量而已。
『陸』 c語言中下標是怎麼算的
在C語言中,下標定義為數組arr[]和數組brr[n]。下標用於數組中。
arr[1]和brr[1]是下標相同的元素。當數組arr[1]中的數字滿足條件時,將執行移位計算。C語言是向左移動減少,向右移動增加。
例如:
int arr[4]={5,6,7,8}
Printf(「%d、%d、%d、%d」、arr[0]、arr[1]、arr[2]、arr[3]);//輸出5、6、7、8
arr[0]=25
Printf(「%d」,a[0]);//輸出25
(6)下標法c語言擴展閱讀:
基本算術運算符
1、+加法或正值運算符:8+8、+9。
2、-減法或負值運算符:7-2、-20、-35。
3、乘法運算:注意標志,不是x,而是*。
4、除法運算:注意符號不是÷或,而是/,整數除以整數依然為整數。1/2的值是0,不是二分之一,不會四捨五入,直接去掉小數部分。
5、%取余操作:取除以兩個整數後的余數。
註:%的兩邊只能是整數,正負取決於左邊的值。
『柒』 c語言問題,地址法和下標法
那裡顯然是錯了,應該是*(a+i),因為這時p還沒有賦值呢!
『捌』 C語言下標法和指針法調用數組
1.p[i]好一些
2.如果是一般類型比較小的,比如int p[10], char p[10]這個用指針和用數組沒啥區別
但是如果是一個大型的結構體,比如
struct str
{
int a[1000],
char b[100],
}p[10];
這個結構體的大小為4100
這個時候,假設i = 2
*(p + i )就相當於*(p + 2),相當於p誇了2個單位的結構體大小(4100)才指到p的第二個位置,然後才取值
而p[2]就直接可以取到第二個結構體的值了
3,第二種方法效率高一些,原因如第二個
4,這個我也說不好。你做多了C的東西自然而然就知道了
『玖』 C語言數組的下標
第一:下標是用在數組中的;第二:定義數組的是時候下標是代表數組的長度,比如inta[5];就是定義一個長度為5的存放整型的數組,數組就是集合,數組a有5個元素,即a[0],a[1],a[2],a[3],a[4],一共5個元素,此時下標就是第幾個元素的意思。例子如下:inta[5]={1,2,3,4,5};printf("%d,%d,%d,%d,%d",a[0],a[1],a[2],a[3],a[4]);//會輸出1,2,3,4,5a[0]=10;printf("%d",a[0]);//輸出10『拾』 在C語言中,用下標如何訪問數組元素
.以下標引用的方式訪問數組
在使用數組的場合中,我們常見的一種訪問方法是使用下標訪問數組元素,如:array[2] = 1,此語句是將該數組的第三個元素賦值為1.[ ]符號中的數字可以認為是在數組基地址上的偏移量,可以通過改變這個偏移量來訪問整個數組。
2.以指針訪問的方式訪問數組
除了使用偏移量的方法,我們還可以使用指針的方法來訪問數組,即間接引用的方式。如:*(array+2) = 1,同上面的代碼一樣,也是對該數組的第三個元素進行賦值。
3.下標引用和指針訪問的執行效率問題
對於這兩種不同的訪問數組的方式,它們的執行效率也不同,在這里先給出結論:指針訪問的效率 >= 下標引用的效率。接下來我們來說說,為什麼使用指針進行間接訪問的效率會優於小標引用的效率。
下標引用的效率
現在假設有如下代碼,執行對整個數組的初始化過程:
int array[10];
for(int i = 0;i < 10;i++)
{
array[i] = 0;
}
在這里我們還是假設編譯器中int類型佔4個位元組,在執行array[i] = 0時,編譯器會將其轉化為類似*(array + (i*4)) = 0形式。在整個執行10次的循環中,意味著也進行了10次乘法運算操作和10次加法運算操作。
指針訪問的效率
假設有如下代碼,執行對整個數組的初始化過程:
int array[10];
for(int *ptr = array; ptr < array+10; ptr++)
{
*ptr = 0;
}
這里是將指針一開始指向數組首地址,然後每次向後移動一個數組元素,這里是每次移動4個位元組,即每次對指針地址+4。在整個過程中只進行了10次加法運算。同上對比可得,對於數組操作來說,指針訪問的效率是優於下標引用的。
4.下標引用和指針訪問的優先順序問題
關於這個問題,筆者還是先給出結論,再舉例進行闡述。
結論:下標引用優先順序 > 指針訪問優先順序。
假設我們現在有以下兩個數組的聲明:
int *array1[10];
int (*array2)[10];
關於上述聲明,乍一看很容易混淆,但其實這只是一個關於結合優先順序的問題。在看這些聲明時,需要記住下標優先順序高於指針*,並且如果出現了( ),那麼它的優先順序一定是最高的。
int *array1[10]
在*和[ ]同時出現的時候,我們先結合優先順序高的[ ]來看,即它先聲明了一個含有10個元素的數組array1,然後將剩下的int *組合,可以知道這個數組裡面的每個元素,都是一個指向整型類型的指針變數。也就是說,這是一個含有10個指針變數的指針數組。
int (*array2)[10]
這里的聲明中出現了( ),由於( )的優先順序最高,所以我們先看(*array2),即array2是一個指向某種類型的指針變數。再結合剩下的int [10],可以知道這個指針變數指向的數據類型是含有10個元素的整型數組。也就是說,這是一個數組指針,指向一個10元素整型數組。