-
* 取內容符
查看全部 -
函數的參數是形參,a、b為參數名,將a,b傳遞進函數的時候,傳入的是兩個數值,在函數里a、b相當于局部變量,無論怎么改變,有效范圍只在該函數里面,對于main里面的a和b是沒有影響的。即函數在傳遞數值的時候是默認把變量里的值傳進去,故傳入的值是實參,而a、b作為一個代號只代表一個變量的名稱,而且該變量在函數里面就相當于一個局部變量,無法影響主函數。
查看全部 -
char類型的指針變量里面的值在代碼段?
用scanf輸入數組類型的值時 可以不用加& 因為數組名稱本身就是地址?
指針類型的字符串不能輸入?char *p="hello world" 中的hello world 不不允許被修改的,因為它儲存于代碼段,而非堆或棧中
只有堆和棧里面可以進行修改數據,代碼段不允許修改數據
字符串遇到\0就結束不會打印后面
查看全部 -
指針類型的加減做的是地址的偏移(表示把內存地址進行移動)
p[3]表示 把p往下偏移移動三格(=> p+=3)
數組的本質也是一種指針;任何需要用數組操作的地方都可以用指針來操作;因為指針和數組本質上都是內存地址。
但反過來則不一定,所有指針能操作的數組不一定能夠操作。數組名不可以被操作。即“array+=2” 會報錯。
p是一個指針變量,是一個可以指向不同地址的量;而array本質上是一種指針常量。
指針常量能操作的一般指針變量也可操作,但指針變量可以把指針指向別的地方而指針常量則不可以,即array一旦聲明指向了某個地址則永遠指向這個地址而不能被改變。
數組和指針可以有一定的通用性又有一定的差別。
查看全部 -
任何一個指針,變量名稱本身:指向變量所在的地址;
在變量名稱前加*:通過該地址去找地址里的內容;
查看全部 -
最下面的內存最先分配
最先分配的棧地址反而更大
棧的特點:先進后出
靜態變量不在棧里頭,相同變量名稱的靜態變量分別在兩個函數里便為兩個不同變量,屬于每個函數特有的;
全局變量為所有函數公用的。其地址不變。
一個函數被多次調用時,靜態變量指向的還是數據段一個固定的地址;即不同函數的count是不同的count,但同一個函數不管調用多少次count,它指向的都是數據段的某個地址。
查看全部 -
每調用一個函數都會分配一個棧內存
先聲明的函數地址小,后聲明的函數地址大
而在棧中是相反的
查看全部 -
在棧中 一個函數可以被多次調用
每次調用函數都是一個獨立的棧
查看全部 -
棧存儲的為函數當前的運行狀態
查看全部
舉報