A. c語言中數組和指針的區別與聯系
數組是用指針方式實現的,但數組值是一個常量,即不能改變數組的首地址,而指針是一個變數,可以改變它的值;如:數組 a和指針p,p=a+1;是合法的,但a=a+1;是不合法的。
B. 如何在c語言中用數組把商品的編號與名稱聯系起來
簡單地用幾個數組:
int i,k=-999,N=5;
int n=888;
char x[20]="c28";
int bianhao[100] ={ 212,351,286,754,888}
char mc[100][20]={"a2","b35","c28","d7","e88888"};
float price[100]={10.2,15.3,16.2,8.2,5.67};
對應的耐團0號商品仔畝孝存 bianhao[0],mc[0],price[0];
對應的i號商品存 bianhao[i],mc[i],price[i];
---------------------------------------
已念稿知 商品編號 n=888 查找:
for (i=0;i<N;i++) if (bianhao[i]==n){k=i;break;};
if (k >= 0) printf("%d %s %f\n",bianhao[k],mc[k],price[k]);
------------------------------------
已知 商品名 x[]="c28" 查找:
k=-999;
for (i=0;i<N;i++) if (strcmp(mc[i],x)==0) {k=i;break;};
if (k >= 0) printf("%d %s %f\n",bianhao[k],mc[k],price[k]);
C. C語言中,指針和數組的區別和聯系
區別:C語言把內存劃分成四個區,它把一般的變數和數組等存在於內存中的棧區,所以數組在C語言的定義中只是一組同類型的普通變數,即使這個變數有可能是指針。所以他的作用比指針小的很多,而指針可以指向任何區的任何數據,所以就會覺得指針和數組名很像,但是必須要注意的是,數組名只是指針中的一種,它是指針中只指向棧區的且指針的移動范圍是有限的,即數組長度。而且數組在定義之初就已經有了自己的內存,一般的指針如果未指向某一個內存塊時,它是沒有自己的內存的,即所謂的野指針。
聯系:如上面所說,數組只是定義在棧區的一個連續變數,它的首地址就是一個指針。
總結:不僅數組有指針,所有變數都有指針,指針說白了就是內存中的地址,就像一個房間必須有一個房間號。在C/C++語言中定義一個指針,就是在棧區開辟一個內存空間用來存放它指向的內存地址,然後給指針賦值,就是把地址值賦值給剛才開辟的內存空間,然後通過訪問該內存中的地址值來間接訪問該地址下存放的數據。如果該地址值指向的是一塊靜態存儲區,如字元串常量等,當然就不可以修改指向的內容啦。
經驗之談,樓樓加分啊
D. C語言怎麼連接兩個一維數組
你可以考慮用指針配合動態分配內存來做。首先確認兩個一維數組的總長度,然後下面是一個例子代碼:
int *a = malloc(n*sizeof(int));
將第一個和第二個數組順序加到a指針就好了。