1樓:接昶馮尋桃
指標變數是指向乙個實際記憶體位址的變數。而scanf函式的輸入中後乙個引數正好是需要乙個位址來表明這個輸入的資料放置在記憶體中的什麼地方,還記得對於這帶爛銀樣的輸入。
scanf("%d",&int))
int或者可以是其他某個值型別的變數名,前面的&符號就是取他的位址。你這裡p是乙個指標變數,所以就不需要取位址符號了。
對於字元指標,他指向的是乙個字元的位址,所歷弊以你後面的char
a;scanf("%s",a)語句會出錯,%s
是一串字元,而不是乙個字元,型別不匹配,a沒有辦法指向字串;而char
string="i
lovechina"這個語句中,蠢宴其實並。
不。是把後面的"i
lovechina"賦值給了string,c語言中是用一連串的記憶體位址存放字串的,類似於字元陣列,而這樣的複製語句其實是把陣列的首位址進行賦值,或許你還見過這樣的語句int
a=intp;
p=a; 這些複製都是把陣列的首位址進行復制,而陣列首位址是第乙個元素(序號為0)的位址,所以型別是相匹配的。
2樓:佔碩瞿秀竹
指標也是位址,所以不用加沒陸&,還有charstring="搏扮i
lovechina"怎基察灶麼還會是等價於charstring;string="i
lovechina"呢?這個就像,int
a=5;int
a;a=5;是一樣的先定義,在賦值,和直接定義賦值是一樣的。
c語言問題:指標變數,陣列名,字串常量的區別。
3樓:網友
(a) s和p完全相同。
a的型別是cha陣列。
p的型別是char指標。
不一樣(b)陣列s中的內容和指標變數p中的內容想等陣列s中的內容是: "china"
不一樣(c)s陣列長度和p所指向的字串長度相等s陣列長度包括 '\0'的位置。
p所指向的字串長度不包括 '\0'的位置s陣列長度 == p所指向的字串長度 + 1 (1就是'\0'佔有的位置)
顯然 不相等。
4樓:網友
(a) s和p完全相同:s是字串陣列,p是字元指標,不同。
c)s陣列長度和p所指向的字串長度相等:s陣列長度是6(最後一位的值是0),p指向的字串長度是5,不等。
d)*p與s[0]值相等:正確。p=s,即p=&s[0],那麼*p的值就等於s[0]。
5樓:網友
好長時間沒看c語言了 有點忘記了。
a、s為乙個字串,p為指標 概念不相同。
b、指標裡面儲存的是位址。
c、忘了 好像是字串最後還有乙個空白字元 所以要多一d、s[0]是字串的首位,而*p也是指向字串的首位 所以一樣。
6樓:c的**
a:s是字元陣列,而p只是字元指標;
b:字元陣列s存放的就是china,而p只是指向陣列s的首位址;
c:s陣列的長度就是china字串的長度,為5,而p所指向的字串長度還應包括字串結尾的識別符號'\0';
綜上所述d是正確答案!
7樓:網友
a:不完全相同 比如p能自加 s不能 p++;
b:陣列s中是很多元素 p中就乙個元素s[0]
c:s陣列長度》=p所指向的字串長度相等 因為s可能很大 而只用了一部分。
C語言中,指標變數該如何使用呢,C語言中指標和指標變數的區別是什麼
int integer 0 為求來 地址運算子,指標用來儲存 源一些變數的bai地址 可以這樣訪du問 pinteger 得到 pinteger這個整形指標裡面的值 zhi0 建議看dao 相關的書,難懂的東西才有意義 所謂指標其實就是用來儲存地址的 就這樣想就好了 比如 int a,p p a 就...
陣列名和指標的區別C語言中陣列名和指標的區別
可以!下面是我學習陣列和指標的總結 1 指向陣列首地址 對於一維陣列a 10 陣列的首地址為a 呼叫 p a a i 或者 p i 對於二維陣列a 3 4 整個陣列的首地址為a 0 呼叫 p a 0 a 0 i 或者 p i 此時a代表陣列第一行的地址。3 指向陣列的每行 形如 int a 3 4 ...
C語言中指標與陣列有什麼關係,C語言中,指標和陣列的區別和聯絡
c語言中陣列和引數可以通用,陣列有一個基址,c中用指標指向它,計算陣列元素地址的時候,是基址 元素位元組數 元素序號 1 陣列名bai代表陣列在記憶體du中的首地址。指標可zhi以儲存一個地址dao,也即指向某地回址。在c中,答 對於某地址的訪問有兩種方式 1.直接訪問,如用變數名進行賦值等 2.間...