C連載24-複習轉換說明以及sizeof運算符

1、複習題

1.打印處下列各項內容須要什麼樣的轉換說明

  • 一個字段寬度與位數相同的十進制整數 %d
  • 字段寬度爲15的unsigned long類型的整數 %15lu
  • 一個形如0x8a、字段寬度爲4的六進制數 %#4x

:對c,s,d,u類無影響;對o類,在輸出時加前綴o;對x類,在輸出時加前綴0x;對e,g,f 類當結果有小數時纔給出小數點。

  • 一個字段寬爲8的字符串前8個字符 %8.8s
  • 一個參數列表中給定字段寬度的八進制整數 %*o
  • 讀取下面各輸入行的scanf()語句 catch 22 (咱們須要跳過catch) %*s %d

2、基本運算符

  • C語言中沒有指數運算符,不過C的標準庫中提供了一個pow函數來進行執行指數運算。
  • C語言支持多重賦值,例如:
int jane,tarzan,cheeat;
cheeat = jane = tarzan = 8;
//三個變量都被賦值了8
  • 支持+ - * /二目運算符,沒什麼好說的,記錄一些特殊點,「截斷」將會向0靠齊,例如:3.8截斷爲3,-3.5截斷爲-3

3、sizeof運算符和size_t類型

  • sizeof運算符會以字節爲單位返回運算對象的大小(char類型就是1字節)
  • 注意點:若是運算對象是類型,則須要使用圓括號括起來,例如:sizeof (int);
#include<stdio.h>
int D24_sizeof(void) {
	int n = 0;
	size_t intsize;
	intsize = sizeof(int);
	printf("n = %d,n has %zd bytes;all ints have %zd bytes.\n", n, sizeof n, intsize);

	return 0;
}

24.1

  • C頭文件系統中能夠使用typedef把size_t做爲unsigned int 或者unsigned long的別名,這樣,使用size_t的時候,編譯器會根據不一樣的系統替換換成標準類型。
  • C99作了進一步調整,**新增了%zd轉換說明用於printf()顯示size_t類型的值,若是系統不支持%zd,能夠使用%u或者%lu來代替%zd.

3、源碼:

相關文章
相關標籤/搜索