sizeof運算符和size_t類型、取模運算符%、增量和減量運算符

sizeof運算符以字節爲單位返回其操做數的大小(在c中,1個字節被定義爲char類型所佔用空間的大小。在過去,一個字節一般是8位,可是一些字符集可能使用更大的字節)ide

sizeof實例程序:ui

#include<stdio.h>
int main()
{

int n=0;
size_t intsize;
intsize=sizeof(int);//c規定sizeof返回size_t類型的值,這是一個無符號整數類型,但不是一個新類型,
printf("n=%d,n has %u bytes:all ints have %u bytes.\n",n,sizeof n,intsize);//個人系統%zd沒法實現,因此用%u(%lu)來替代。
return 0;
//c有個typedef機制,它容許您爲一個已有的類型建立一個別名。如:typedef double real;  使得real 稱爲duble 的別名,real deal;編譯器看到real,回想起typedef 語句把real定義爲double的別名,因而把deal建立爲一個double類型的變量。

}

運行結果:this

wKiom1l8DO2AKFmLAAAHqlbLZ5w678.png

二、取模運算:while()循環:
blog

實例程序以下:get

//min_sec.c把秒數轉換爲分鐘和秒
#include<stdio.h>
#define SEC_PRE_MIN 60
int main()
{	int sec=60;
	int min,left;
	printf("please convert seconds into minutes and seconds.\n");/*注意此處/n不可缺一部分,我忘記了n,只有/程序
	就一直編譯報錯。*/
	printf("enter the number of the seconds(<=0 to quit):\n");
while(sec<=1000)
{
	sec=sec+100;
	min=sec/SEC_PRE_MIN;//獲得分鐘數;
	left=sec%SEC_PRE_MIN;//取模運算獲得秒數;
	printf("%d seconds is %d minuts and %d seconds.\n",sec,min,left);
}
printf("please stop convert!\n");
return 0;
}

運形結果:編譯器

wKiom1l8E1PQTP6QAABTvwFQWo0530.png

三、
it

Profix前綴模式++i就徹底等價於i=i+1;先加1後賦值。因此顯而易見,i++就是先賦值後加1;--等同。io

四、本章總結,用一個綜合的例子來結尾,其中要注意的問題,就是程序必定要細心,不可犯低級錯誤,打錯忘定義之類的!
編譯

實例程序以下:class

//綜合示例程序:running.c
#include<stdio.h>
#define S_PER_M 60//每分鐘的秒數
const int S_PER_H =3600;//每小時的秒數
const double M_PER_K =0.62137;//每千米的英里數
int main(void)
{
double distk,distm;//分別以千米和英里記得跑過的距離
double rate;//以英里每小時位單位的平均速度
int min,sec;//跑步時用的分鐘數和秒數
double mtime;//跑完一英里所用的時間以秒記
int mmin,msec,time;//跑完一英里所用的時間,以分鐘、秒記
printf("this program converts your time for a metric race\n");
printf("to a time for running a mile and to your average\n");
printf("speed in miles per hour.\n");
printf("please enter the kilometers, the distance run .\n");
scanf("%lf",&distk);//lf表示讀取一個double 類型的數值
printf("Next enter your time in minuts and seconds.\n");
printf("begin by entering the minutes.\n");
scanf("%d",&min);
printf("now enter the seconds. \n");
scanf("%d",&sec);
time=S_PER_M*min+sec;//把時間轉換爲所有用秒錶示
distm=M_PER_K*distk;//把千米轉化爲英里,
rate=distm/time*S_PER_H;//時間/距離=跑完每英里的用時
mtime=(double)time/distm;
mmin=(int)mtime/S_PER_M;
msec=(int)mtime%S_PER_M;
printf("you ran %1.2f km (%1.2f miles)in %d min,%d sec.\n",distk,distm,min,sec);
printf("that pace corresponds to running a mile in %d min,",mmin);
printf("%d sec.\n your average speed was %1.2f mph.\n",msec,rate);
return 0;
}

運行結果以下:


wKiom1l8JRvyl8pVAACDiBQd1tM763.png

相關文章
相關標籤/搜索