當前位置:首頁 » 密碼管理 » 指針一維數組的訪問

指針一維數組的訪問

發布時間: 2022-08-02 03:05:35

『壹』 20個整數存儲在一維數組中,要求用指針法訪問數組,通過冒泡方式將其中最大值移到數組尾部輸出全部數據

按照題目要求編寫的程序如下(見圖)

『貳』 c中用指針遍歷一維數組的問題。

vs2005,把int i;放到前面後,正常。
首先純C中用的時候再定義變數是C99的標准。
vs2005是部分支持C99標準的,在vs2005的.c文件中默認是不支持的,你的沒問題應該是你文件名是.cpp了,這在用來調試C程序是不好的。

錯誤的原因就是你前面已經用指針p遍歷過一次了,p的地址已經改為a+5了,不再是a了,再繼續訪問屬於越界訪問了,如果沒有掛的話顯示值就是內存中的值,值隨機。

『叄』 C程:通過指針間接訪問一維數組元素

#include<stdio.h>

#define NUM 50

int main(void)

{

int a[NUM],i;

int *ap;

for(i=0;i<50;i++)

{

a[i]=i+10;

}

i=0;

for(ap=a+49;ap>=a;ap--)

{

printf("%d,",*ap);

i++;

if(i%5==0)

printf(" ");

}


return 0;

}


『肆』 描述使用指針變數訪問一維數組的基本過程

你說的應該是一個函數裡面定義了指針叭;把幾個知識點跟你說一下:

  1. 指針的本質就是地址

  2. 數組Array[10]中Array表示數組首元素的地址,也是指向數組首元素 的指針;Array+1表示數組第二個元素的地址,也是指向數組第二個元素的指針

然後我們看函數調用:void travelList( int * k);

這裡面的int * k表示一個變數名為k的指針(地址),你可以把任何地址放進來;於是乎我們這樣調用travelList(Array),這就相當於k定位到了Array的位置,可以任意讀取Array的內容了;

此時在這個函數裡面 k[0]=Array[0],k[1]=Array[1],k[3]=Array[3]......

差不多就是這些了,如果要問更多的內容可以私信我,同時如果這個問題可以幫助你的話,能關#注我#一下🐎

『伍』 c語言一維數組指針調用

這個大概也只能用來做理論研究了,實際編程過程中不可能這么寫,
int a[10] ; a[i]
int *p ,p=a; p[i]
這兩個應該好理解
注意,一旦聲明int a[10]
那麼a就是一個地址常量了,他是數組a在計算機內存中的首地址

a+2就相當於&a[2]
把他當成一個數組(假設為b)的起始地址的話
(&a[2])[5]也就是一個數組的元素,b[5]
而他對應的原來的a數組元素就是a[7]
看圖:
地址:

&a[0] &a[1] &a[2] &a[3] ... &a[9]

a a+1 a+2 a+3 ... a+9
&b[0] &b[1] ... &b[7]
b b+1 ... b+7
元素 a[0] a[1] a[2] a[3] ... a[9]
b[0] b[1] .. b[7]
另外這個
(&a[i])[j] =>a[i+j]
就相應的推出來了
實際上就是要注意
a,a[0],&a[0]三者之間的關系

a是數組的首址,也就是第一個元素的地址,也就是&a[0]
而a[0]就是一個元素

『陸』 c語言中數組訪問和指針訪問的區別

一維數組 等效於常量一維指針
二者除了數組名不能改變值以外,訪問完全相同。
二維以上數組,訪問時直接根據數組首地址 計算出偏移量訪問。
而二維以上指針,則是分步取出各個中間地址值,然後再取出最終值。

『柒』 假定a為一維數組,則a[i]的指針訪問方式是什麼

一維數組的數組名,在不改變其值情況下,可以做指針使用。
在作為指針時,a[i]等效於*(a+i)。
也可以單獨定義指針。比如定義a的同類型一維指針p,令p=a;
這樣*(p+i)同樣是訪問a[i]的。
區別是這個p是可以加減的,所以同樣可以p = a+i; 這時*p就是a[i]了。

『捌』 C語言指針指向一維數組與二維數組

『玖』 一維數組與指針問題

a也是指針,它作為指針和p的區別就是a的值是不可以改變的,就是a只能指向初始化時給它地址。所以,p=a是正確的,這樣p所指向的和a所指向的是一樣的,都是這個數組的第一個元素的地址。你可以通過p[i]來訪問這個數組。
*p = a是不正確的。
假如int *p,a[10]這樣定義的,會提示不能將int[]轉化成int的編譯錯誤。

『拾』 C程序 通過指針間接訪問一維數組元素

#include<stdio.h>
#defineNUM10

intmain()
{
inta[NUM],*pa,temp;
pa=a;

for(inti=0;i<NUM;i++)
scanf("%d",&a[i]);

for(intj=0;j<NUM;j++)
{
for(intk=j+1;k<NUM;k++)
{
if(*(pa+k)>*(pa+j))
{
temp=*(pa+j);
*(pa+j)=*(pa+k);
*(pa+k)=temp;
}
}
}

printf("%d ",*(pa));
for(i=1;i<NUM;i++)
{
printf("%d ",*(pa+i));
if((i+1)%5==0)
printf(" ");
}
return0;
}

熱點內容
伺服器機櫃屬於什麼輻射 發布:2024-05-05 18:02:10 瀏覽:335
存儲成本計算 發布:2024-05-05 18:02:10 瀏覽:583
如何把手機改安卓10 發布:2024-05-05 17:39:07 瀏覽:497
我的世界怎麼擴容伺服器內存 發布:2024-05-05 17:19:54 瀏覽:48
java讀取文件字元 發布:2024-05-05 17:15:18 瀏覽:11
三星怎麼應用加密 發布:2024-05-05 17:13:18 瀏覽:152
cad字體在那個文件夾 發布:2024-05-05 17:08:20 瀏覽:331
什麼時候用編譯器 發布:2024-05-05 17:08:20 瀏覽:766
應急救援腳本 發布:2024-05-05 17:08:17 瀏覽:338
我的世界搭建無正版驗證伺服器 發布:2024-05-05 17:03:48 瀏覽:819