指標使用的疑惑

2021-07-15 10:58:28 字數 1026 閱讀 9167

test1.c

#include

#include

#include

#include

char *b = "abcdefg";

void change_char(char *str)

int main(int argc, char **argv)

gcc test1.c -o test1

執行結果

str[abcdefg]  

a[(null)] 

test2.c

#include

#include

#include

#include

char *a = null;

char *b = "abcdefg";

void change_char(char *str)

int main(int argc, char **argv)

gcc test2.c -o test2

執行結果

str[abcdefg]  

a[(null)] 

test3.c

#include

#include

#include

#include

char *b = "abcdefg";

void change_char(char **str)

int main(int argc, char **argv)

gcc test3.c -o test3

執行結果

str[abcdefg]  

a[abcdefg] 

疑惑:1.test1,test2執行結果,說明什麼問題?作用域的問題?

2.test3執行結果,說明的確把指標a的位址值更改為指標b的位址值。

總結:1.任何指標的占用空間都是4個位元組大小,如果指標沒有指向分配的某一塊具體空間位址,千萬不能針對該指標執行具體操作!!!!

2.程式本質上都是針對記憶體空間的內容進行操作的,一定要仔細考量!

3.

指標 解決的疑惑

簡單的就不說了,今天學鍊錶,在鍊錶中遇到了自己疑惑的事情,後來在網上查二級指標,搜出來乙個,才解除了自己的疑惑 好久沒有用過c c 的二級指標了,總覺的它就是指標的指標,沒什麼大不了的,但是今天看到一道面試題,感覺自己對二級指標的理解還是不夠深刻。於是,從網上找資料,學習了一番 題目是這樣的 inc...

指標與陣列的疑惑

include void reverse string char string void swap char a,char b intmain void void reverse string char string 若char string fucnkjljlk 換成 char string fu...

c指標 2個疑惑。

先註明,寫給自己看的。1.include include int main ptr printf d ptr return 0 剛剛看這樣的題目,感覺蠻簡單的。ptr定義指向了 m array的首位址,char型別1位元組。乙個int4個位元組 ptr 後,指標ptr的值加上1乘sizeof int...