⑴ c語言中,一個指針佔用的空間是多大和指針類型有關系嗎
指針和其指向的數據類型有關系,你可以用sizeof()來做測試:
printf("the size of char is %d\n",sizeof(int*));
printf("the size of char is %d\n",sizeof(char*));
另外,指向結構體的指針就要看具體情況了,C語言還有所謂的「對齊機制」,就是結構體里的單元,所分配的空間實際上要參照結構體里「體積」最大的那個單元。就是說,比如一個char和一個int,char要向int看齊,一個char和一個double,char要向double看齊。關鍵就在於湊整數,湊成最大變數大小的倍數。當然,如果結構體里只有char型的變數或是數組,就不存在一定要湊數的問題了。
⑵ c語言指針占幾個位元組
在C語言中,無論指針指向的內容是什麼,指針總是佔4個位元組的。
⑶ c語言 二級指針
第一條改成
int
a[10][20],*p=a[0];
二維數組本來就是以為數組,二級指針是指針的指針,不同概念
char
*a[]={"a","b"};
char
**p=a;
這里定義了一個指針數組,裡面保存了兩個地址,一個是字元串a的首地址,一個是字元串b的首地址,然後數組的首地址a,這樣用一個二級指針才能訪問,這就是所謂的指針的指針
int
a[2][2]={1,2,3,4};
int
(*p)[2]=a;
(*p)[2]的意思是,p是一個指針變數,只想一個有兩個元素的一位數組,這不剛剛就是二維數組的首地址嗎?所以這個(*p)[2]是可以指向二維數組首地址
*p[2]的意思是,定義一個數組,裡面有兩個指針元素,這和"[]","*"運算符優先順序有關的
⑷ C語言中一個指針佔用多少位元組
一個指針變數在內存中占兩個位元組(small模式編譯),一個指針變數在內存中佔四個位元組(32位機器上),一般都是32位機器的,所以四個位元組咯。
指針即為地址,指針幾個位元組跟語言無關,而是跟系統的定址能力有關。
指針是一個特殊的變數,它裡面存儲的數值被解釋成為內存里的一個地址。要搞清一個指針需要搞清指針的四方面的內容:指針的類型、指針所指向的類型、指針的值或者叫指針所指向的內存區、指針本身所佔據的內存區。
(4)二級c語言指針佔分擴展閱讀
1、指針的類型
從語法的角度看,你只要把指針聲明語句里的指針名字去掉,剩下的部分就是這個指針的類型。這是指針本身所具有的類型。讓我們看看例一中各個指針的類型:
(1)int*ptr;//指針的類型是int*
(2)char*ptr;//指針的類型是char*
(3)int**ptr;//指針的類型是int**
(4)int(*ptr);//指針的類型是int(*)
(5)int*(*ptr);//指針的類型是int*(*)
2、指針所指向的類型
當你通過指針來訪問指針所指向的內存區時,指針所指向的類型決定了編譯器將把那片內存區里的內容當做什麼來看待。
從語法上看,你只須把指針聲明語句中的指針名字和名字左邊的指針聲明符*去掉,剩下的就是指針所指向的類型。例如:
(1)int*ptr; //指針所指向的類型是int
(2)char*ptr; //指針所指向的的類型是char
(3)int**ptr; //指針所指向的的類型是int*
(4)int(*ptr); //指針所指向的的類型是int()
(5)int*(*ptr); //指針所指向的的類型是int*()
⑸ 計算機二級c語言考試的題型有哪些以及相應的分值是多少
考試形式及分值:
筆試:選擇(70分)填空(30分)
機試:改錯(30分)填空(30分)程序(40分)
⑹ c語言中指針佔多少個位元組
四個位元組,32位的地址寬度,最大可以管理4gb的內存。
⑺ 計算機二級C語言中指針所佔分值比例
筆試部分不到10% 指針主要表現在上級部分,大概題目是一個填空和一個編程,這裡面必考指針,指針是重要的部分,計算機二級C語言的精髓也就在指針部分。
⑻ 計算機二級c語言指針產量怎麼算啊,不知道怎麼算的,15題,求詳細過程
i=3 j=5 這兩個的值一直都沒變
p 和 q 指向的上面兩個的地址 ,這個也沒變過
這兩個地址傳入函數f後 ,由於比較條件成立 造成地址交換 ,s指向i的地址.並返回
所以r 指向的是j的地址
所以結果就是 d) 3,5,3,5,5,
⑼ C語言中二級指針和一級指針
*s=p是將s指向的地址中的內容修改為p
s=&p是令s指向p
⑽ 在C語言中一個指針佔用多少位元組。
指針即為地址,指針幾個位元組跟語言無關,而是跟系統的定址能力有關。譬如以前是16為地址,指針即為2個位元組,現在一般是32位系統,所以是4個位元組,以後64位,則就為8個位元組。
(10)二級c語言指針佔分擴展閱讀:
1)指針的含義
指針不同於一般變數,存的是變數的地址,在同一架構下地址長度都是相同的(cpu的最大定址內存空間),所以不同類型的指針長度都一樣比如說一個char1位元組,可以存在0x0,也可以位於0xFFFFFFFF,比如你的32位系統。
2)指針的范圍
指針長度為4,在64位操作系統下那麼就都是8了,而和char佔用1位元組還是100位元組無關,指針的范圍只和機器字和系統有關。
3)變化的范圍
如果你輸出的是444,說明指針長度為4位元組可以記錄的地址范圍是0x00000000~0xFFFFFFFF,這個范圍才是指針變數的值。
4)指針的介紹
指針是一個特殊的變數,它裡面存儲的數值被解釋成為內存里的一個地址。要搞清一個指針需要搞清指針的四方面的內容:指針的類型、指針所指向的類型、指針的值或者叫指針所指向的內存區、指針本身所佔據的內存區。