c語言中的內存指什麼

一樣的,你編的就是程序,系統運行的也是程序,只是大小不一樣,形式略有不同而已。當然佔用一樣的內存了。

Ⅱ C語言中的內存分配問題

void
*
malloc(int
size)
類型
*指針變數名=(類型名
*)malloc(sizeof(類型名)
*個數);
舉例內:
int
*p=(int
*)malloc(sizeof(int)
*
10);
分配10個int大小的內容存
char
*pstr=(char
*)malloc(sizeof(char)
*
100);

Ⅲ C語言中INT變數所佔的內存

1,int *A也是變數,也要佔4位元組
2,00404008 + 4 = 0040400c(A的地址)
0040400c + 4 = 00404010 (c1的地址)

Ⅳ C語言內存中佔位元組數如下定義

21
union
aa按佔位元組來數自位最大的元素計算。
這里有三個元素
x:4
y:4
c:6
於是
為6
z即struct
st佔位元組數,為各個元素和
v:6
w:2*5=10
ave:4
所以是6+10+4=20
選A
22
x為union
類型,
佔位元組數為最大元素值
i:2
ch:1
f:4
於是佔4個位元組
選C

Ⅳ C語言中的內存地址和存儲單元是什麼概念

C語言中的內存地址和存儲單元是什麼概念
無符號的整數版和有符號的正整數都是用二進制原碼來表示權,而負整數則是使用補碼來表示(補碼的演算法:負數的絕對值的原碼安位取反再加一)。舉個例子來說吧:
假設機器使用的是16位來存儲整數。
10
的存在形式是0000000000001010
-10的存在形式:
(1)
|-10|
=
10
,10原碼為0000000000001010
(2)安位取反:
1111111111110101
(3)加1:
1111111111110110(最終結果)

Ⅵ c語言中內存問題

樓主這個地方寫錯了: printf("%llx %lx\n",b,a);

應該寫成 printf("%lx %llx\n",b,a);

至於在寫錯的情況下為什麼輸出是那些:
printf("%llx %lx\n",b,a);首先把8位元組的a壓入棧,然後把4位元組的b壓入棧,然後調用printf函數根據第一個格式化%llx在棧上去取一個8位元組的數,剛好把a的低四位和b的四位拿出來形成了0xae34bcdf11111111。然後再根據第二個格式化%lx去棧上取4位元組的數,恰好是a的高4位,所以輸出會是0。

Ⅶ C語言中什麼叫內存地址

C語言紅
當你輸入比如
int
a=10;
int
b
=
20;
當輸入scanf接受時以近給變數開辟了空間
內存地址一般為16位
0-F表示

Ⅷ 在c語言中 佔用的內存

c語言有不源同的數據類型,計算機維護書中的字母和數字的意思是,字母和單個數字是字元型的,用ASC碼表示,佔一個位元組,漢字是雙字型的DWORD,占兩個位元組。
而21天那書中意思明顯是,x表示一個字元「x」,數據類型是字元型char,佔一個位元組,數字500是short
int類型的數據,占雙位元組,short
int類型表示的范圍是-32768到32767,所以表示500這個數用short
int就可以
數字241.105是浮點數,計算機中浮點類型float佔用4個位元組表示。
所以兩本書中「數字」不是一回事,一個是數字字元和字母字元,一個是實際的數字
好好看看數據類型這塊知識

Ⅸ C語言和內存關系

恩,不錯,可以這么說。
軟體是怎麼到內存並運行的呢?這個內存地址有何關系呢?
就拿任何一個windows程序來說,程序的入口點都是WinMain,這個WinMain在內存的什麼地方呢?
在win7之前,只要你不修改鏈接器選項,這個WinMain一定是在內存的0X400000.
任何程序都需要操作系統內核支持,操作系統的內核的地址是0X80000000~4GB之間。
其他的庫文件,比如C語言中支持字元串函數(如strcap)的庫在400000與80000000之間。
可見,硬碟上的exe文件在進入內存之前,就已經明確知道自己會在內存的什麼位置。
當然,這里有個4GB虛擬地址空間的概念:在32位系統中,系統為每個exe文件分配了一個4GB的虛擬空間,無論你是否安了4G內存。很顯然,很多庫,特別是系統內核,都是能共用的,所以你的系統能同時運行多個需要4GB虛擬空間的程序。

這個和C語言的指針有何關系呢?
舉個簡單例子:每個exe文件一般需要系統的dll文件才能運行,在exe文件的開頭,有一個表記錄了該exe需要那個dll中的哪個函數。由於dll地址是固定的,函數地址為相對於該dll地址的偏移地址,所以exe能在4GB空間中找到它需要的函數。你可以通過exe文件的基地址找到這個表,這個基地址在每個程序運行時由系統交給了exe程序,這個基地址就是一個指針。然後你能修改這個指針,所以以後每次調用這個函數時,程序將轉跳到你自己的代碼中。這其實就是c語言中的函數指針的概念。
在匯編語言中是沒有指針的,因為指針本質上就是內存中的地址。exe文件和dll文件中各種基地址和偏移地址,就是你所說的「無數個指針」。
當然,以上解釋是非常淺薄的,指針、內存、地址的概念是簡單的,但在實際的系統中卻非常復雜。如果你想了解一些底層的,本質的問題,可以在學習C語言之後參考一些匯編語言,windows底層編程等書籍,比如《Windows via C/C++ 第五版》《Intel匯編語言程序設計 第五版》就是兩本很好的入門教程。

Ⅹ C語言中的'\n'在內存中的表示

是\n,如果輸出到文本文件,並且用的是windows系統,就會自動轉換為\r\n