C語言面試題---指標篇(四)
解析:
首先看最後一個問題, c 是第一個元素的地址, *c 是第一行元素的首地址,其實第一行元素的
地址就是第一個元素的地址, **c 是提取第一個元素。
為什麼 c , *c 的值相等?
c是陣列名,是一個二維指標,它的值就是陣列的首地址,也即第一行元素的首地址(等於 *c ),
也等於第一行第一個元素的地址( &c[0][0] );可以說成是二維陣列的行指標。
*c 是第一行元素的首地址;是一個一維指標,可以說成是二維陣列的列指標。
**c :二維陣列中的第一個元素的值;即:c[0][0]
所以:c 和 *c的值是相等的,但他們兩者不能相互賦值,(型別不同)
綜上所述, (c+1) 與 (*c+1) 中:
(c+1) ,c是陣列名也就是二維陣列的行指標,所有 c+1 是移動一行,
將指標指向二維陣列中第二行的首地址,也就是 &c[1][0] .
而 (*c+1) 中, *c 是二維陣列第一行的首地址,也就是二維陣列的列指標,所以 (*c+1) ,
移動的是一列,是將指標指向二維陣列第一列的第二個元素,也就是 &c[0][1]
在這里,還需要提醒的一點就是所謂的陣列指標和指標陣列:
相關推薦
C語言面試題---指標篇(四)
解析:首先看最後一個問題, c 是第一個元素的地址, *c 是第一行元素的首地址,其實第一行元素的地址就是第一個元素的地址, **c 是提取第一個元素。為什麼 c , *c 的值相等?c是陣列名,是一個二維指標,它的值就是陣列的首地址,也即第一行元素的首地址(等於 *c ),也等於第一行第一個元素
C語言面試題---指標篇(三)
版本宣告:本文轉載於公眾號TeachPlus C語言面試題---指標篇(三) 了解了記憶體空間,接下來我們就一起看一下指標自身用法的一些題目,先來看這樣一道題目: 分析下面程式碼:` # include <stdio.h> # include
C語言面試題---指標篇(一)
版本宣告:本文轉載於公眾號TeachPlus 指標的使用,一直是c語言面試題中必考的部分, 因為指標本身使用的複雜性與普適性,所以考點非常多,而且也可以與其他知識相互結合, 因此我們將會使用五篇專題的篇幅來介紹指標。分析下面的程式,指出程式中的錯誤:
C語言面試題---指標篇(二)
# include <stdio.h># include <stdlib.h># include <string.h>void getMemory( char **p , int num){ *p = malloc(num);} int main() {
C 語言返璞歸真: 指標篇(2)
前言 上篇博文講到 C 語言指標的基本使用(宣告和初始化以及解引用), 對指標有了基本的瞭解之後,就來說說指標的一個曖昧物件——陣列。 陣列是什麼? 陣列是幾乎所有程式語言都有的一種型別,
C語言面試題大彙總 (影象處理方向)
1、區域性變數能否和全域性變數重名? 答:能,區域性會遮蔽全域性。要用全域性變數,需要使用"::" ;區域性變數可以與全域性變數同名,在函式內引用這個變數時,會用到同名的區域性變數,而不會用到全域性變數。對於有些編譯器而言,在同一個函式內可以定義多個同名的區域性變數,比如在兩個迴圈體內都定義一個同名的
java面試題——java基礎(四)
table 生命 運行 漸變 於平 單獨使用 標記語言 prepare 新建 java基礎1.java跨平臺 由於各個操作系統的指令不完全一樣,在不同的操作系統執行不同的程序代碼,java開發了java虛擬機來屏蔽系統之間的差異,針對不同的系統安裝不同的虛擬機即可。2.i
C語言中的 指標常量(*const)和常量指標(const*)的區別(很重要!!!)
參考連結:https://blog.csdn.net/qiu931110/article/details/80580295 這個哥們講的還可以,但是我想用白話在描述一下,方便理解: const限定符作用於指標 常量指標(先常量限制符號,在指標符號,co
2017 Java開發面試題-資料庫篇(1)
1、儲存過程 --建立 CREATE PROCEDURE pro_name(IN inputName inputType, OUT outputName outputType) BEGIN--sql statement...SELECT ** INTO outputName
C語言陣列篇(四)二維陣列
二維陣列宣告: int a[2][3] ={{1,2,3},{4,5,6}; //兩行 三列 1 2 3 4 5 6 二
C語言函式篇(四)函式的設計
1. 函式設計的時候,如果使用到全域性變數,就儘量通過引數的形式傳遞進來 也就是說,保持 函式 跟 外部的互動 只有 引數 和 返回值 2. 在有引數的情況下,或者有數值輸入的時候,要先進行錯誤判斷. int func( int *buf){ //1.錯誤判斷 i
C語言:指標篇(三)用指標訪問二維陣列 & 例項分析
之前對指標的認識並不深入,最近在做影象處理,需要用二維陣列儲存影象資料,發現用指標訪問二維陣列的規律,感覺很有意思。 一般,我們定義一個二維陣列比如m[2][2]={ 1,2,3,4 },假如想訪問第i行,j列的元素,用m[i][j]即可,例如m[1][1]=4。 那麼二
C語言面試題 4 (查詢整數陣列中第二大的數)
題目:寫一個函式找出一個整數陣列中,第二大的數。【Mirosoft】 PS:1、” 66,66,66,66,66 ”,則沒有第二大數。 2、” 99,99,88,86,68,66 ”,則最大數是88。 下面我先給出查詢最大數字的程式: int GetFirstMaxNumbe
C語言面試題分類->排序算法
OS sort 試題 時間復雜度 ups popup popu 使用 body 1.選擇排序。 每次將最小的數,與剩余數做比較。找到更小的,做交換。 時間復雜度:O(n2) 空間復雜度:O(1) 優缺點:耗時但內存空間使用小。 void selectSor
C語言面試題分類->回調
指向 name 傳輸 join 接口 但是 PE AS 一個數 本文主要講解如果實現回調,特別是在封裝接口的時候,回調顯得特別重要,我們首先假設有兩個程序員在寫代碼,A程序員寫底層驅動接口,B程序員寫上層應用程序,然而此時底層驅動接口A有一個數據d需要傳輸給B,此時有兩種方
智郵普創c語言面試題 ---- 字母概率
arr apple void != stdio.h app words 遊戲 包含 題目描述 小明最近對概率問題很感興趣。一天,小明和小紅一起玩一個概率遊戲,首先小明給出一個字母和一個單詞,然後由小紅計算這個字母在這個單詞中出現的概率。字母不區分大小寫。 例如,給定的字母是
C語言學習日記第一篇(C語言概述)
C語言學習日記第一篇——C語言概述 一,C語言概述 如果要說目前什麼語言最為火熱,人們可能會說Python、Android,學好這些語言可以讓你很輕鬆的找到一份收入不菲的工作,過上舒適的生活。但是,小編覺得,如果要說什麼語言最重要,還是得回到C語言上來。我們平時所談論到的所有語言的發
C語言面試題2
1 預處理 問題1:什麼是預編譯?何時需要預編譯? 答: 預編譯又稱預處理,是整個編譯過程最先做的工作,即程式執行前的一些預處理工作。主要處理#開頭的指令。如拷貝#include包含的檔案程式碼、替換#define定義的巨集、條件編譯#if等。. 何時需要預編譯: 1、總是使用不經常改動的
100道c語言面試題
題目來源: 1、中興、華為、慧通、英華達、微軟亞洲技術中心等中 外企業面試題目; 2、C 語言面試寶典(林銳《高質量程式設計第三版》)。 說明: 1、部分C 語言面試題中可能會參雜部分和C++ 相關的知 識,為了保持題目的靈活性故保留,但選題最終還是 會以C
C語言面試題
關於“一年有多少秒”的巨集定義 網上關於這個問題的答案都是(365*24*60*60)UL,是錯誤的。 正解:數字和型別是一個整體,()是外人。 #include <stdio.h> #define SECONDS_PER_YEAR (3