c語言intp
㈠ c語言intp(5)什麼意思
intp5是c語言中的一種數據類型,它表示一個整數,可以佔用5個位元組的存儲空間。
㈡ 為什麼c語言指針那麼難
指針確實難於理解。指瞎消針具有兩個身份:
第一如蘆,指針本身是一渣神帶個變數。只要是是變數,它就佔用內存地址。當然如果沒有分配內存地址,不在其內。
第二,指針包含一定的一個內容。指針所特殊的就是,他的內容保存的是其他變數的地址。
以上兩點可以通過書中的示例7-7有比較好的體現。
例如,定義指針變數intp1。 intp1=&a 就表示 intp1保存的信息為a的地址。
而*intp1表示是intp1所保存地址的內存單元所保存的值,實際就是a的值。
所以,你給出的 *intp1=&a; 是一種不太合適寫法。我們可以這樣假設,再給一個變數b。令*intp1=b=&a,則
b=&a,說明b保存的a的地址,這樣b就是一個指針。那*intp1=b,則說明 intp1所保存的地址指向的內存單元為b。所以,intp1可以看成a的指針的指針。
上面這個例子比較繞,慢慢想想,就理解了。
㈢ intp的c型
intp,具有邏輯學家人格類型的人熱衷於各種模式,而發現話語之間的紕漏幾乎是他們與生俱昌鉛滲來的習慣,所耐脊以,對邏輯學家說謊可不是什麼明智之舉。
頗有諷刺意味的是,邏輯學家的話卻不可全信 — 不是因為他們不夠誠實激畢,而是因為邏輯學家人格類型的人喜歡在跟自己的辯論中分享並未完全成熟的想法,他們只是為了從他人口中試探對各種想法和理論的意見,而不是將他們作為真正的談話夥伴。
㈣ C語言位運算掩碼
一、位運算符c語言提供了六種位運算符:
&按位與
|按位或
^按位異或
~取反
<<左移
>>右移
1.按位與運算按位與運算符"&"是雙目運算符。其功能是參與運算的兩數各對應的二進位相與。只有對應的兩個二進位均為1時,結果位才為1,否則為0。參與運算的數以補碼方式出現。
例如:9&5可寫算式如下:00001001(9的二進制補碼)&00000101(5的二進制補碼)00000001(1的二進制補碼)可見9&5=1。
按位與運算通常用來對某些位清0或保留某些位。例如把a的高八位清0,保留低八位,可作a&255運算(255的二進制數為0000000011111111)。
main(){
inta=9,b=5,c;
c=a&b;
printf("a=%d\nb=%d\nc=%d\n",a,b,c);
}
2.按位或運算按位或運算符「|」是雙目運算符。其功能是參與運算的兩數各對應的二進位相或。只要對應的二個二進位有一個為1時,結果位就為1。參與運算的兩個數均以補碼出現。
例如:9|5可寫算式如下:00001001|00000101
00001101(十進制為13)可見9|5=13
main(){
inta=9,b=5,c;
c=a|b;
printf("a=%d\nb=%d\nc=%d\n",a,b,c);
}
3.按位異或運算按位異或運算符「^」是雙目運算符。其功能是參與運算的兩數各對應的二進位相異或,當兩對應的二進位相異時,結果為1。參與運算數仍以補碼出現,例如9^5可寫成算式如下:00001001^0000010100001100(十進制為12)
main(){
inta=9;
a=a^15;
printf("a=%d\n",a);
}
4.求反運算求反運算符~為單目運算符,具有右結合性。其功能是對參與運算的數的各二進位按位求反。例如~9的運算為:~(0000000000001001)結果為:1111111111110110
5.左移運算左移運算符「<<」是雙目運算符。其功能把「<<」左邊的運算數的各二進位全部左移若干位,由「<<」右邊的數指定移動的位數,
高位丟棄,低位補0。例如:a<<4指把a的各二進位向左移動4位。如a=00000011(十進制3),左移4位後為00110000(十進制48)。6.右移運算右移運算符「>>」是雙目運算符。其功能是把「>>」左邊的運算數的各二進位全部右移若干位,「>>」右邊的數指定移動的位數。
例如:設a=15,a>>2表示把000001111右移為00000011(十進制3)。應該說明的是,對於有符號數,在右移時,符號位將隨同移動。當為正數時,最高位補0,而為負數時,符號位為1,最高位是補0或是補1取決於編譯系統的規定。turboc和很多系統規定為補1。
main(){
unsigneda,b;
printf("inputanumber:");
scanf("%d",&a);
b=a>>5;
b=b&15;
printf("a=%d\tb=%d\n",a,b);
}
請再看一例!
main(){
chara='a',b='b';
intp,c,d;
p=a;
p=(p<<8)|b;
d=p&0xff;
c=(p&0xff00)>>8;
printf("a=%d\nb=%d\nc=%d\nd=%d\n",a,b,c,d);
}
㈤ c語言指針p1,p2都為指針, p1-p2;*p1-*p2;intp1-intp2為什麼不同,它
第一個是指彎讓裂針滑嘩值相減,通常用來算埋閉兩個指針之間的偏移量
第二個是指針指向的內存地址裡面存的數值相減,
第三個不知道你寫的是啥
㈥ C語言 函數 全局變數
他們的關系自己看圖,對照著圖看就懂了。
特別是同樣是塌帆芹y,main裡面的轎埋用的y就團畢是main裡面那個,p裡面用的y就是p裡面那個,都叫y,不是同一個變數。
main是程序的入口,任何程序都是從main開始執行。
另外,你這程序沒答案,因為作為初始數據的全局變數int x就沒賦值,其值是不定值
㈦ 一個C語言指針的奇怪問題!
分配空間是這樣分配的:
char strp[]="happy"; 6個位元組
int *intp=NULL,a=100; intp是 接著的4個位元組,a是再接著的4個位元組
這樣你將
every day! 這11個字叢山節放在了strp的後面,很可能把 a位元組的數野此據覆蓋了,所以a的空間存儲會變
你把 char strp[]="happy"; 改為 char strp[32]="happy"; 就可以了。頌鄭迅用strcat的時候要保證源的地址空間足夠 。
㈧ C語言中float型轉換成int型是什麼規則
#include<stdio.h>
#include<math.h>
int main()
{
int i;
int i2;
int siz;
float P[14]={0,1,2,3,1,1,5,1,2.3,6.1,500,130,5,0};
siz=sizeof(P);//列印出數組P的位元組數
printf("sizeof=%d ",siz);
for(i=0;i<14;i++)
{
printf("P[intp]=%d ",floor(P[i]));//列印出P數組的每一個元賣殲素值,以int型顯示
}
for(i2=0;i2<中行沖14;i2++)
{
printf("P[floatp]=%f ",P[i2]);//列印出P數組的每一個元素值,以float型顯示
}
}
好帶瞎像VC++6.0運行的結果只有強制轉換有用,不知道是不是我寫的語句有問題