1.memset函數(shù)的原型void *memset(void *s, char ch,?size_t?n);
創(chuàng)新互聯(lián)公司自2013年起,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元鎮(zhèn)沅做網(wǎng)站,已為上家服務(wù),為鎮(zhèn)沅各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:028-86922220
函數(shù)的第一個(gè)形式參數(shù)是指針類型,所以實(shí)參因?yàn)橐粋€(gè)地址,即a
注意a與a是不同的.a是結(jié)構(gòu)體變量名,而a是變量a的地址.
2.另外memset()是一個(gè)庫(kù)函數(shù)函數(shù),需要加頭文件#includestring.h
3.正如你所說的全局與主函數(shù)內(nèi)定義變量a是有一點(diǎn)區(qū)別
源代碼如下:
#includestdio.h
#includestring.h
typedef struct ss
{
int num;
int dir[5][3];
}tent;
//tent a;
int main()
{
tent a;
printf("a=%p\n",a);? //輸出的是變量的地址
printf("a=%p\n",a);//注意a與a的區(qū)別
memset(a,0,sizeof(a));
return 0;
}
主函數(shù)內(nèi)運(yùn)行結(jié)果:
全局變量運(yùn)行結(jié)果:
這個(gè)沒警告的.
已上在VC6.0下的結(jié)果
為嘛第二個(gè)沒警告,暫時(shí)不清楚.但第一個(gè)有警告是合理的.
triangular function又叫做tentfunction,定義為:
tri(t)=1-|t|,當(dāng)|t|1;
tri(t)=0,當(dāng)|t|=1
/*
1 ?2 ?3 ?4 ?5 ?6 ?7 ?8 ?9 10 11 12 13 14 15
3 ?6 ?9 12 15 ?4 ?8 13 ?2 10 ?1 11 ?7 14 ?5
Press any key to continue
*/
#include?stdio.h
#include?stdlib.h
typedef?struct?node?{
unsigned?number;
struct?node?*next;
}?*NODE;
typedef?struct?list?{
NODE?head;
unsigned?length;
}?*Loop;
Loop?InitList(void)?{
Loop?JosephLoop?=?(Loop)malloc(sizeof(list));
JosephLoop-head?=?(NODE)malloc(sizeof(node));
JosephLoop-head-number?=?0;
JosephLoop-length?=?0;
return?JosephLoop;
}
void?CreateList(Loop?JosephLoop,unsigned?n)?{
unsigned?i;
NODE?p?=?JosephLoop-head;
JosephLoop-length?=?n;
for(i?=?1;?i?=?n;?++i)?{
p-next?=?(NODE)malloc(sizeof(node));
p-next-number?=?i;
p?=?p-next;
}
p-next?=?JosephLoop-head;
}
void?Show(Loop?JosephLoop)?{
NODE?p?=?JosephLoop-head-next;
while(p?!=?JosephLoop-head)?{
printf("%2u?",p-number);
p?=?p-next;
}
printf("\n");
}
void?NumberOff(Loop?JosephLoop)?{
unsigned?count?=?0;
NODE?q,p?=?JosephLoop-head;
while(JosephLoop-length??1)?{
if(p-next?==?JosephLoop-head)?p?=?p-next;
++count;
if(count?%?3?==?0)?{
printf("%2u?",p-next-number);
q?=?p-next;
p-next?=?q-next;
free?(q);
--JosephLoop-length;
count?=?0;
}
else?p?=?p-next;
}
printf("%2u?",JosephLoop-head-next-number);
// printf("%2u?",JosephLoop-head-next-next-number);
printf("\n");
}
int?main()?{
Loop?JosephLoop?=?InitList();
CreateList(JosephLoop,15);
Show(JosephLoop);
NumberOff(JosephLoop);
return?0;
}
c語(yǔ)言編程將十進(jìn)制轉(zhuǎn)化為2進(jìn)制可按手工轉(zhuǎn)換規(guī)則進(jìn)行程序轉(zhuǎn)換。
整數(shù)占四個(gè)字節(jié),每字節(jié)8位,共32位。所以,可以定義一個(gè)32位的數(shù)組來存儲(chǔ)轉(zhuǎn)換結(jié)果。
循環(huán)將整數(shù)進(jìn)行除2取余數(shù),余數(shù)存儲(chǔ)到數(shù)組中。
當(dāng)整數(shù)整除為0時(shí),結(jié)束循環(huán)
逆序輸出數(shù)組,得到轉(zhuǎn)換結(jié)果
參考代碼:
#include?stdio.h
void?main()
{
int?c[32],i=0,n;
scanf("%d",?n)?;?//輸入待轉(zhuǎn)換整數(shù)n
do?{
c[i++]=n%2;
n/=2;
}?while(n!=0)?;
for(i--;i=0;i--)
printf("%d",c[i]?);
printf("\n");
}