標(biāo)題: 請教c語言一維指針(字符串)數(shù)組和二維字符數(shù)組的區(qū)別 [打印本頁]

作者: macboa    時間: 2021-12-6 19:03
標(biāo)題: 請教c語言一維指針(字符串)數(shù)組和二維字符數(shù)組的區(qū)別
  1. char arr[][3]={{‘a(chǎn)’,’b’,’\0’},{‘b’,’c’,’\0’}};
  2. char* arr[3]={“ab”,“bc”};
  3. char* arr[3]={{‘a(chǎn)’,’b’,’\0’},{‘b’,’c’,’\0’}};
復(fù)制代碼
請問這三個初始化的具體區(qū)別和不同

作者: 黃youhui    時間: 2021-12-7 08:32
1 普通的二維數(shù)組,你應(yīng)該懂
2和3  char arr【3】里面有存放的就是指針也就是存放著3個數(shù)組的首地址
作者: macboa    時間: 2021-12-7 08:39
您好 請問這三個 用起來一樣嗎?? 第2個能否訪問arr[1][1]
如果是下面三個代碼,他們還一樣嗎???謝謝大佬
  1. char arr[][3]={{‘a(chǎn)’,’\0’,’b’},{‘b’,’c’,’\0’}};
  2. char* arr[3]={“a”,“bc”};
  3. char* arr[3]={{‘a(chǎn)’,’\0’,’b’},{‘b’,’c’,’\0’}};
復(fù)制代碼

作者: macboa    時間: 2021-12-7 08:40
請問大佬,123使用起來一樣嗎?像2能否訪問arr[1][1]???
另外如果是如下代碼,他們是否還相同?
  1. char arr[][3]={{‘a(chǎn)’,’\0’,’b’},{‘b’,’c’,’\0’}};
  2. char* arr[3]={“a”,“bc”};
  3. char* arr[3]={{‘a(chǎn)’,’\0’,’b’},{‘b’,’c’,’\0’}};
復(fù)制代碼

作者: macboa    時間: 2021-12-7 08:41
黃youhui 發(fā)表于 2021-12-7 08:32
1 普通的二維數(shù)組,你應(yīng)該懂
2和3  char arr【3】里面有存放的就是指針也就是存放著3個數(shù)組的首地址

請問大佬,123使用起來一樣嗎?像2能否訪問arr[1][1]???
另外如果是如下代碼,他們是否還相同?
  1. char arr[][3]={{‘a(chǎn)’,’\0’,’b’},{‘b’,’c’,’\0’}};
  2. char* arr[3]={“a”,“bc”};
  3. char* arr[3]={{‘a(chǎn)’,’\0’,’b’},{‘b’,’c’,’\0’}};
復(fù)制代碼

作者: macboa    時間: 2021-12-7 08:41
黃youhui 發(fā)表于 2021-12-7 08:32
1 普通的二維數(shù)組,你應(yīng)該懂
2和3  char arr【3】里面有存放的就是指針也就是存放著3個數(shù)組的首地址

請問大佬,123使用起來一樣嗎?像2能否訪問arr[1][1]???
另外如果是如下代碼,他們是否還相同?
  1. char arr[][3]={{‘a(chǎn)’,’\0’,’b’},{‘b’,’c’,’\0’}};
  2. char* arr[3]={“a”,“bc”};
  3. char* arr[3]={{‘a(chǎn)’,’\0’,’b’},{‘b’,’c’,’\0’}};
復(fù)制代碼

作者: 13205495918    時間: 2021-12-7 09:51
還是找個書系統(tǒng)學(xué)一下這里比較好
作者: 996256177    時間: 2021-12-7 10:18
找個C語言書或者視頻教程,講得很詳細的

作者: macboa    時間: 2021-12-7 16:31
在學(xué)這一段,但是書里面沒有講到這些。
作者: macboa    時間: 2021-12-7 16:31
在寫,但是書里沒有講到這些。
作者: 黃youhui    時間: 2021-12-8 09:08
macboa 發(fā)表于 2021-12-7 08:41
請問大佬,123使用起來一樣嗎?像2能否訪問arr[1][1]???
另外如果是如下代碼,他們是否還相同?

不能。編譯器不認可,會報錯的,編譯器沒檢測到二維數(shù)組,你直接調(diào)用二維數(shù)組是會報錯的。
(*)(arr[0] + 1) 。
arr[0]就是你所說的arr[0][0],但是arr是指針型的變量,所以arr[0]是指針你不能直接調(diào)用,需要加上*
arr[0] + 1就是指針后移一位,也就是arr[0][1],同樣也是指針,所以要加*
作者: 51hei08    時間: 2021-12-8 19:44
1.第一行的二維數(shù)組是標(biāo)準(zhǔn)的二維數(shù)組初始化,也就是元素逐個存放。
作者: 我會想你的    時間: 2021-12-9 11:02
macboa 發(fā)表于 2021-12-7 08:41
請問大佬,123使用起來一樣嗎?像2能否訪問arr[1][1]???
另外如果是如下代碼,他們是否還相同?

如果使用的相同的代碼,會報錯,我就是這樣被報錯了很久,




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1