陣列名錶示指標常量的問題
6.若已定義 char s[10]; 則在下面表示式中不表示s[1]的地址的是 B 。
A、s+1 B、 s++ C、&s[0]+1 D、 &s[1]
s是陣列名,相當於陣列首地址,是一個指標常量,這裡s++相當於呼叫了s=s+1這個賦值表示式;對一個指標常量來進行賦值操作是不合法的。
這裡注意陣列名s和&s的區別。
相關推薦
陣列名錶示指標常量的問題
6.若已定義 char s[10]; 則在下面表示式中不表示s[1]的地址的是 B 。 A、s+1 B、 s++ C、&s[0]+1 D、 &s[1] s是陣列名,相當於陣列首地址,是一個指標常量
第二章 陣列名是一個指標常量嗎?
陣列名是一個指標常量這種觀點來源於陣列名在表示式計算中與指標的結果等效性。例如下面的程式碼: int a[10], *p = a, *q; q = a + 1; q = p + 1; 在效果上看,a + 1與 p + 1是相同的,這很容易給人一種a就是p的假象,但,這僅僅是假象。鑑於指標常量包含了指標
C/C++二維陣列名和二級指標
轉載自http://blog.csdn.net/wu_nan_nan/article/details/51741030 C/C++二維陣列名和二級指標 原創 2016年06月23日
指標(一)陣列名退化為指標
個人的淺顯認識, 歡迎批評指正.1. 什麼是陣列型別?下面是C99中原話:An array type describes a contiguously allocated nonempty set of objects with aparticular member object type, called t
【指標大佬的原創】說出來你們可能不信,但是陣列名確實不是指標常量
這篇是一篇C語言勸退流教學文,看不懂的同學應該是勸退教學流的目標物件 (寫完了才想起來注一下,本文提到的“陣列”和“陣列名”字樣,指的是陣列左值表示式(array lvalue expression)或陣列宣告(array declaration)所宣告的變數) 首先,陣
說出來你們可能不信,但是陣列名確實不是指標常量
這篇是一篇C語言勸退流教學文,看不懂的同學應該是勸退教學流的目標物件 (寫完了才想起來注一下,本文提到的“陣列”和“陣列名”字樣,指的是陣列左值表示式(array lvalue expression)或陣列宣告(array declaration)所宣告的變數
c語言中陣列名與指標的區別與聯絡
今天在工作中定義陣列的時候習慣性的使用char型指標後直接等於字串,但在編譯通過後執行的時候產生了段錯誤,因為著急就(整個函式程式碼還是比較多的)沒仔細看程式碼,只是抱著試試看的心態,將定義換成了陣列後等於字串的形式,居然沒有在出現段錯誤,感到很奇怪(剛乾程式設計師沒多久,
陣列名和陣列名加地址符的區別(瞭解指標)
問題發現在int *p[4]和int (*ip)[4]的區別? 為了明白這個區分,做個小例子驗證 以下是驗證程式碼 int *p[4]; int a=0; int *q=NULL; p[0]= &a; p[1]=q; int (*ip)[4];
指標、陣列名與陣列首元素地址的關係
陣列名等價於等同於指向陣列首元素的指標!!!/* *copyright(c) 2018,HH *All rights reserved. *作 者:HH *完成日期:2018年7月15日 *版本號:v1.0 * *問題描:指標、陣列名與陣列首個元素地址的關係! *輸入描述:;
陣列名真的不是指標
前言: 事實告訴我們,二維陣列名不等於二級指標 那一維陣列呢? 對於一維陣列,用一級指標指向陣列名,用一級指標做引數傳遞一維陣列,似乎毫無問題。 void f(int *p); int main(void) { int arr[2];
類中陣列成員變數怎麼初始化,陣列名與指標的區別
使用STL標準模板庫之後,程式設計時已經很少使用陣列和指標,相反,多使用序列容器vector代替之。 (std::vector<int>,建構函式接受const std::vector<int> &vec,拷貝用this->arr= vec 即可)
深入理解:指標陣列,陣列指標,指向指標的指標,陣列名含義
(1)指標陣列是一個數組,裡面包含若干指標,指標陣列名是指向指標的地址,可賦值給指向指標的指標。 如 char* a[]={"hello" ,"world","nihao"}; char**p=a; (2)陣列指標是一個指標,指向整個陣列。 如 int v
【轉】陣列的指標特性——陣列名何時不退化成指標?何時退化成指標
地址:https://blog.csdn.net/dengheCSDN/article/details/78110957 從一道小題下手(該考點曾被騰訊等大公司作為基礎筆試題考過) #include <stdio.h> int size(char a[10]) {
關於二維陣列名和指標的指標的問題
int a[2][3]; a的型別相當於 int (*)[3]而不是int ** int a[2][3]; int (*b)[3] = a; 這是可以的 但是int **c=a 是不可以的; 還有一種策略是 int *b[2]={a[0],a[1]};
指標 陣列 陣列名和陣列名取地址的區別
首先指標陣列 和陣列指標叫法本身是種誤導 指標陣列:array of pointers,即用於儲存指標的陣列,也就是陣列元素都是指標 陣列指標:a pointerto an array,即指向陣列的指標 其次他們本質一個是陣列,一個是指標 int* a[4]
陣列名不能自加操作,指標可以自加操作
char p[] = "ssd";++ p;為什麼會提示'++' needs l-value ?為什麼char *p = "ssd";++ p;卻可以呢??? 原因:指標名型別 char* const p=..(指向不可變) 指標可以++操作,而陣列名也可以轉化為
對多維陣列名、指向陣列的指標和指標陣列的理解
今天新開的部落格,有點小激動。。。。。。聽說要成為一個好的程式設計師必須要寫部落格,雖然不太明白為什麼,但就當寫日記好了。。。 寫之前先#define WORD '我的內心是崩潰的' 這詞目測在這
c++指標(三)——指標和陣列名的關係
這一篇文章揭祕指標和陣列名的關係~~~(1)、陣列的定義int array[10];//定義了一個數組array,並且初始化都為0,陣列為{0,0,0,0,0} int array[10]={1,2};//定義了一個數組array,並且初始化都為0,但是第一,第二個元素又被改
陣列名和指標的區別
首先陣列名不是指標,這個可以用sizeof驗證。 printf("%#x \n", &ca); 是傳遞陣列首地址,毫無疑問。 printf("%#x \n", ca); 傳遞的是陣列,但
陣列名與指標“沒關係”
一、陣列名是指標嗎? 在C語言基礎書上我們看到過"我們可以把地址,形象的看成指標",所以地址就是指標,指標就是地址,這句話在某種程度上應該沒一點問題。但是我們也老是聽別人說"陣列名就是首元素的地址",