聲明和初始化(Declarations and Initializations)
返回
如何使用integer type?
如果數(shù)值大于32,767或小于-32,767,使用long.
如果容量重要的話(比如說巨大的數(shù)組,許多構(gòu)造體),使用short.
其他的情況使用int.
整數(shù)常數(shù)的數(shù)據(jù)判斷
#include
int main(void)
{
int plus3 = 3, minus3 = -3;
double ddt;
// 2147483647是可表示的最大整數(shù)
ddt = 2147483647 + plus3;
printf("Ex1 ddt= %f\n",ddt);
ddt = 2147483647U + plus3;
printf("Ex2 ddt= %f\n",ddt);
ddt = minus3 + 1;
printf("Ex3 ddt= %f\n",ddt);
ddt = minus3 + 1U;
printf("Ex4 ddt= %f\n",ddt);
ddt = minus3 + 0;
printf("Ex5 ddt= %f\n",ddt);
ddt = minus3 + 0U;
printf("Ex6 ddt= %f\n",ddt);
return 0;
}
/*
運(yùn)行結(jié)果
Ex1 ddt= -2147483646.000000
Ex2 ddt= 2147483650.000000
Ex3 ddt= -2.000000
Ex4 ddt= 4294967294.000000
Ex5 ddt= -3.000000
Ex6 ddt= 4294967293.000000
*/
extern 聲明外部變量
#include
void func(void);
int glb = 88888888;
int main(void)
{
printf("main:glb=%d\n",glb);
func();
return 0;
}
// test080905_2.c
#include
extern int glb;
void func(void)
{
printf("func:glb=%d\n",glb);
}
/*
C:\ctest\cl test080905.c test080905_2.c
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.
test080905.c
test080905_2.c
????を生成中...
Microsoft (R) Incremental Linker Version 6.00.8168
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.
/out:test080905.exe
test080905.obj
test080905_2.obj
C:\ctest>test080905
main:glb=88888888
func:glb=88888888
*/
聲明外部變量2
#include
void sub(void);
extern int glb1;
int main(void)
{
printf("%d\n",glb1);
/*
不能使用glb2變量==>
printf("%d\n",glb2);
test080908.c
test080908.c(10) : error C2065: 'glb2' : 定義されていない識別子です。
test080908.c(20) : warning C4098: 'sub' : 戻り値の型が 'void' で宣言された関數(shù)が
、値を返しました。
*/
sub();
return 0;
}
void sub(void)
{
extern int glb2; // 函數(shù)內(nèi)宣言
printf("%d\n",glb1);
printf("%d\n",glb2);
return 0;
}
/*
運(yùn)行結(jié)果
44444444
44444444
88888888
*/
獲取一定范圍的任意整數(shù)
#include
#include
int main()
{
int N;
int rand1;
N = 1000;
rand1 = (int)((double)rand()/((double)RAND_MAX+1)*N);
printf("RAND_MAX is %d\n", RAND_MAX);
printf("N is %d\n", N);
printf("N rand is %d", rand1);
return 0;
}
/*
答案有問題?
RAND_MAX is 32767
N is 1000
N rand is 1
*/
返回int型和double型的函數(shù)
#include
int rint();
double rdb();
int main(void)
{
int a;
double d;
a = rint(8888);
printf("%d\n", a);
d = rdb(88.88);
printf("%f\n", d);
return 0;
}
int rint(int dt)
{
return dt * 10;
}
double rdb(double dt)
{
return dt * 10.0;
}
/*
運(yùn)行結(jié)果
88880
888.800000
*/
文字型數(shù)據(jù)
#include
int main()
{
char c1;
unsigned char c2;
int it;
c1 = '\xFF';
c2 = '\xFF';
it = '\xFF';
printf("c1=%d\n", c1);
printf("c2=%d\n", c2);
printf("it=%d\n", it);
c1 = 0xFF;
c2 = 0xFF;
it = 0xFF;
printf("c1=%d\n", c1);
printf("c2=%d\n", c2);
printf("it=%d\n", it);
return 0;
}
/*
運(yùn)行結(jié)果
c1=-1
c2=255
it=-1
c1=-1
c2=255
it=255
*/
返回
密山市|
家居|
龙井市|
定结县|
德保县|
屏东市|
德化县|
登封市|
新野县|
津南区|
什邡市|
收藏|
三原县|
石屏县|
黔西县|
泸定县|
扶风县|
南充市|
临邑县|
榆社县|
五家渠市|
开阳县|
通许县|
隆子县|
神池县|
蓬莱市|
彭阳县|
安阳市|
锦屏县|
铜川市|
阿拉尔市|
集安市|
揭阳市|
古田县|
海淀区|
如东县|
当阳市|
阿鲁科尔沁旗|
泸溪县|
衡山县|
景东|