Q4C語言
⑴ c語言/指針/ int *p[4]和int (*q)[4] 的含義和區別
前面是指針數組,是一個數組!P裡面裝的是4個指針。後面這個是數組指針,是一個指針!(意思是一個指向數組的指針,該數組有4個元素)
⑵ c語言 從鍵盤輸入一個4*4整數矩陣
#define N 4
void main()
{
int a[N][N];
int i,j,max,p,q;
printf("輸入4*4矩陣:\n");
for(i=0;i<N;i++)
for (j=0;j<N;j++)
scanf("%d",&a[i][j]);
printf("輸入的矩陣為:\n");
for(i=0;i<N;i++)
{
for(j=0;j<N;j++) printf("%4d",a[i][j]);
printf("\n");
}
max=a[1][0];
p=1;q=0;
for(i=1;i<N;i++)
for(j=0;j<i;j++)
if(a[i][j]>max)
{
max=a[i][j];
p=i;q=j;
}
a[q][p]=max;
printf("處理以後的矩陣為:\n");
for(i=0;i<N;i++)
{
for(j=0;j<N;j++) printf("%4d",a[i][j]);
printf("\n");
}
}
⑶ 在C語言中 int &q 是什麼意思
正宗的C語言中應該沒有這種寫法。C++中有一個叫「引用」的基本類型,它是一個已經存在的變數的別名,int &q這就是聲明一個int型的引用。不過引用在聲明時必須初始化,所以正確的寫法是int &q=a;(其中a是已經聲明過的int型變數)。
⑷ C語言中:若有定義語句:int a[4][10],*p,*q[4];且0≤i<4。
(1)與2維數組相似,但絕不是2維數組。它是一個指針數組,它的每一個元素均為一個地址
(2)如題,p是一個一級指針可等價於一維數組,你的第一個式子估計不會成立,原因:p[i]應該存放一個數據,而a[i]是二維數組a的第i列的首地址,類型不匹配(你的p也沒有賦初值,是個野指針,即指向不確定空間,有的編譯器可能能通過,不過運行會有問題),第二個式子的意思是把a的第i列的首地址賦值給p(此時p就相當於一個一維數組,它能訪問a的第i列的元素);
⑸ C語言中:*q[4]是幾維數組大俠指教!
這個叫數組指針就是你的數組q中 存了四個指針, 每個指針指向什麼我就不說了。
至於你的問題還得斟酌斟酌,如果存的指針指向一個數組的話就是二維的,另外就不知道了
⑹ C語言中,int x[]={ 4,3,2,1 },q,*p=&x[1]; 則執行語句 q=(*--p)++ 後,變數 q 的值為多少
變數q的值為4.
解釋一下,根據聲明來說,p是指向數組x第二個元素(3)的指針,這個q=(*--p)++計算順序是q=(*(--p))++,即,先對p進行自減運算,自減以後p指向數組第一個元素(4),然後對這個指針取值得到4,然後是後綴自增運算,結果是p指向的元素自增了,但是返回值為自增之前的值,即4.
⑺ C語言中,(*q)[4]這是幾維
(*q)[4] 不是數組,是一個數組指針!
例如:定義一個指針 int (*q)[4]
這個指針用來指向一個大小為 5 的 int 型數組.
⑻ c語言,(*q)++和q++有什麼不同
(*q)++ 是指針q所指單元值加1;
q++是指針q的值值加1(即指向下一個元素)
⑼ 已知q與n,求等比數列之和: 1+q+q2+q3+q4+…+qn c語言
有問題繼續問我
⑽ C語言int (*q)[5]表達什麼意思
q是一個指向數組長度為3的整形數組的指針。(*q)說明是指針,右邊[]說明是一個指向數組的指針,左邊的int 說明是個整形數組的指針。 這鍾指針識別就得這樣右左右左一步步定位。
int a[3][3]編譯的時候可以認為成int a[][3]或者int (*a)[3],所以可以賦值給q。但要是 int (*q)[5]就不行了,類型不同,而且沒有隱式轉換的方法。
跟你下面講得 q = a不一樣,下面那個int 被隱式轉換成了 int*。
最後給你一個復雜的例子你體會一下這種復雜的定義吧:
char* (*(*a[N])())()。定義了一個包含N個指向返回字元指針的函數指針的數組~~