指向指標的指標與二維陣列的區別
int main(){
int a[2][3]={{1,2,3},{4,5,6}};
int **p=a;
cout<<**p<<endl;
}
以上程式碼有沒有問題?
由於p是指向指標的指標,p指向一個int *型別的變數,而陣列名a表示陣列首元素的地址&a[0],因此p指向a[0]。然而a[0]並不是int *型別的變數,與p應該指向的型別不同,因此在初始化時編譯器會發現型別不匹配,產生編譯錯誤。
應該改為:
int main(){
int a[2][3]={{1,2,3},{4,5,6}};
int (*p)[3]=a;//p為指向陣列的指標
cout<<**p<<endl;
}
相關推薦
指向指標的指標與二維陣列的區別
int main(){ int a[2][3]={{1,2,3},{4,5,6}}; int **p=a; cout<<**p<<endl; } 以上程式碼有沒有問題? 由於p是指向指標的指標,p指向一個int *型
C語言之指標與二維陣列
指標,其實就是地址,可以指向一塊自己分配大小的空間。陣列即是多塊一位的空間的線性排布。二維陣列,雖然在人文定義的感覺上有了面的理解,但實際在記憶體中也是一維的線性空間。 對於討論二維陣列,首先我們應該先討論一維陣列與
指標7(指標與二維陣列)
先來道例題 #include<stdio.h> int main() {int a[3][4]={{0,1,2,3},{10,11,12,13},{20,21,22,23}}; int *p,i,j; p=&a[0][0]; printf("\n"); for
C ++ 指標 | 指標與二維陣列_5
指標與二維陣列 根據上面的圖,我現在寫一些語句,我們一起來判斷輸出值是多少!! int (*p)[3] = B; print B; 這個會列印多少? 思考一下。。。。。。。 。。。 。。。 。。。 列印: 400 print *B;
指標與二維陣列練習-文字排版(C程式設計進階 第5周)
程式設計題#3:文字排版 來源: POJ (Coursera宣告:在POJ上完成的習題將不會計入Coursera的最後成績。) 注意: 總時間限制: 1000ms 記憶體限制: 65536kB 描述 給一段英文短文,單詞之間以空格分隔(每個單詞包括其前後緊鄰的標點
指標與二維陣列
一.、二維陣列元素的地址 定義如下二維陣列: int a[3][4] = { {0,1,2,3}, {4,5,6,7}, {8,9,10,11} }; a為二維陣列名,此陣列有3行4列, 共12個元素。但也可這樣來理解
c語言實現用指標遍歷二維陣列
1 #include <stdio.h> 2 void bian(int row,int col,int *a) 3 { 4 int i,j; 5 for(i=0;i<row;i++) 6 for(j=0;j<col;j++) 7
一維陣列與二維陣列的一些區別
//【一維陣列】/*#include <stdio.h>void A(int arr[4]){ printf("%d\n",arr); printf("%d\n",arr + 1); printf("%d\n",arr[0]);}int main(){&nb
每日一題——指標遍歷二維陣列
用到了記憶體地址的知識 #include <iostream> using namespace std; int main() { int a[2][3] = { 1,2,3,4,5,6 }; for (int i = 0; i < 2; i++)
c語言指標遍歷二維陣列
#include <stdio.h> void bian(int row,int col,int *a) { int i,j; for(i=0;i<row;i++) for(j=0;j<col;j++) printf("%d
C語言程式設計-指標遍歷二維陣列
筆記: 一:操作方法 ①a[1][2]地址為:a[1]+2,*(a+1)+2 ((a+1)第二行地址,*(a+1)+2第二行第一列地址),&a[1][2] ②a[1][2]值為:*(a[1]+2
C++學習筆記(三)--函式引數,陣列函式,指標和const,二維陣列函式,遞迴,函式指標
C++ Primer Plus學習筆記之三 每一塊寫了一個詳細闡釋的demo,具體使用方法以及注意事項在程式碼裡都有備註 第七章函式--C++的模組程式設計,總計分為以下幾塊-- 函式引數
指標轉置二維陣列
轉置實現二維陣列行列互換 第一種方法:比較簡單,用指向矩陣的陣列指標表示二維陣列 #include <stdio.h> main() { int t,a[4][4]={{1,2,3,4}
關於javascript的陣列與二維陣列、關聯陣列
陣列: 什麼是:記憶體中連續儲存多個數據的記憶體空間 為什麼:便於批量管理和操作多個相關的資料 建立陣列: 有3種建立方法; (1)建立一個空陣列: var arr=[]; var arr=new Array(); (2)建立陣列時就初始化值:var arr=[45,
C語言中一維陣列與二維陣列
int arr [4] //定義了一個一維陣列,長度為4;說明以下三個分別是什麼型別; (1)arr //型別為int *,表示陣列元素首地址,即圖中箭頭指向的位置。 (2)arr+1 //型別為int *,表示陣列元素首地址+1,即圖中箭頭指向的位置。 (3)arr [0
opencv1.0 iplimage與二維陣列相互轉換
#include "stdafx.h" #include <cv.h> #include <highgui.h> int main(int argc, char* argv[]) { IplImage *src =
Array類與二維陣列(分別輸出5個班級裡5個同學的成績 以及個班總成績和全部班級全部同學的總成績)
//Arrays類應用 字元排序,查詢某個字元的位置 char[] chars={'s','a','f','z','k'}; System.out.println("排序前"); for(int i=0;i&l
C語言對矩陣的轉制與二維陣列行列互換
//矩陣的轉制就是二維陣列的行列互換,比如有這樣的一個矩陣a[3][3]= 1,2,3
【C語言基礎】1-5 C語言迴圈與二維陣列
C語言迴圈與二維陣列 知識點 break與continue break:break語句在switch-case語句中是跳出。break語句在迴圈中還有另一種用法。當迴圈中遇到break語句時,立即結束迴圈,跳到迴圈體外,執行迴圈結構後面的語句 conti
【C語言】一維陣列、二維陣列與指標
一維陣列和指標: 1、一維陣列名: 對於這樣的一維陣列:int a[4]; a作為陣列名就是我們陣列的首地址, a是一個地址常量 . 首先說說常量和變數的關係, 對於變數來說, 用箱子去比喻再好不過了, 宣告一個變數就宣告一個箱子,比如我們開闢出一個蘋果型別的箱子, 給這個變