當前位置:首頁 » 編程語言 » c語言把數組的首地址給指針
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言把數組的首地址給指針

發布時間: 2022-09-26 10:17:44

A. 數組可以賦值給指針嗎(求高手) 例如: int num[10],*pn; pn=num;

可以。

指針作為實體,是一個用來保存一個內存地址的計算機語言中的變數。

數組,是有序的元素序列。若將有限個類型相同的變數的集合命名,那麼這個名稱為數組名。組成數組的各個變數稱為數組的分量,也稱為數組的元素,有時也稱為下標變數。

數組名可以代表數組的首地址,num就是num數組的首地址,pn聲明為一個指針變數,它的值直接指向(points to)存在電腦存儲器中另一個地方的值,也就是個地址。因此num的值是可以賦值給pn的。

(1)c語言把數組的首地址給指針擴展閱讀:

數組使用規則

1.數組的類型實際上是指數組元素的取值類型。對於同一個數組,其所有元素的數據類型都是相同的。

2.數組名的書寫規則應符合標識符的書寫規定。

3.數組名不能與其它變數名相同。

4、只能給元素逐個賦值,不能給數組整體賦值。例如給十個元素全部賦1值,只能寫為:static int a[10]={1,1,1,1,1,1,1,1,1,1};而不能寫為:static int a[10]=1;(請注意:在C、C#語言中是這樣,但並非在所有涉及數組的地方都這樣,資料庫是從1開始。)

網路-數組

網路-指針

B. C語言如何獲得數組首地址的指針

單維數組名就是首地址,多維數組名就是第1維的首地址,因此取首地址,可以把數組名賦給對應的指針變數,或取索引為0的首個元素地址賦給對應的指針變數。舉例:
單維 int arr[10]; int * p =arr; 或 int * p =&arr[0];
二維 int arr[10][10]; int (*p)[10] =arr; 或int (*p)[10] = &arr[0];// 取第一維地址
int arr[10][10]; int * p= & arr[0][0]; // 取多維中的首個元素

C. C語言,怎樣把數組的首地址賦給另一個數組

不能把數組的首地址賦給另一個數組。因為數組名是常量指針類型,初始化之後是不能夠被修改的。
有兩種辦法實現類似功能,一種是創建指針變數,把地址直接賦值指針變數:
例如
int
a[100];
int
*b=a;
第二種就是直接用循環一一復制每個元素。
例如
for(i=0;i<strlen(a);i++)
b[i]=a[i];

D. c語言問題,再c中數組名就是數組的首地址可以發送給指針變數,但是取地址數組名也可以發送,並且結果一樣

&a與a是不一樣的,&a是整個數組的地址,a是數組的首元素地址,&a在值上與a相等,但是代表的含義不一樣的,&a+1是下一個數組的首地址,a+1是數組的第二個元素的地址

E. C語言 指針方法

#include<stdio.h>

int main()

{

int a,b,c,s[3],t;

int *x,*y,*z;//定義指針變數

x=&a;//將a的地址賦給指針x,下同

y=&b;

z=&c;

scanf("%d%d%d",x,y,z);

s[0]=*x;//將指針x所指向的變數值賦給數組s的第一個元素;依次類推

s[1]=*y;

s[2]=*z;

for(int i=0;i<3;i++)//冒泡排序

for(int j=0;j<3-i-1;j++)

if(s[j]<s[j+1])

{

t=s[j];

s[j]=s[j+1];

s[j+1]=t;

}

for(int i=0;i<3;i++)

printf("%d ",s[i]);

return 0;

}

F. C語言 把結構體數組的地址賦給指針

1、結構體指針其實是一個指針,它存儲的是指向某個結構體的「地址」,所以結構體指針數組存儲的其實是指向一組結構體的「地址」數組,它本身並不包含結構體的具體內容(沒有被分配內存)
2、所以當用到他們時,要麼重定向,比如:
d=&b; //讓d指向b,d存儲的是b的地址,這樣就能通過d來調用b了
要麼用malloc為他們分配內存:
d=(struct h *)malloc(sizeof(struct h));
這樣d就指向系統為其分配的一塊內存,其內容就是struct h中的東西

G. C語言怎麼定義一個字元指針指向一個二維字元數組的首地址

二維數組也是「數組的數組」所以定義一個指向由m個元素組成的一維數組指針即可指向二維數組的首元素地址。
如:
char
arr[2][2]
=
{
{
'a',
'b'
},
{
'c',
'd'
}
};
char
(*p)[2];
p=arr;
//
p指向首元素地址。
char
c
=
*(p[0]+
1);//
指向0行1列
即字元b