?? ex2.cpp
字號:
// 第2章 基本元素、類型和概念
//[例2.1]C++中初始化定義語句char m=f(3);中的表達式是函數調用
#include<stdio.h> // f(3)是int型表達式,隱含地轉換賦值給char型局部變量m
int f( int k) {printf("k=%d,",k); return k*k;}//k是定義在堆棧空間的局部變量
void main(void) { char m=f(3); printf("m=%d\n",m);} //輸出k=3,m=9
//[例2.2]
#include <stdio.h>
void main() //定義在函數體中的變量a,b是局部變量
{ signed short a=65535;// warning: 'initializing' : truncation from 'const int' to 'short'
unsigned short b=-1; //-1初始化無符號的短整型數b
printf("[%hd,%4hu,%4ho,%x]\n",a,a,a,a);//輸出:[-1,65535,177777,ffffffff]
printf("[%hd,%4hu,%4ho,%x]\n",b,b,b,b);//輸出:[-1,65535,177777,ffff ]
}
//sizeof(0xffff)= sizeof(-1)=4
//[例2.3]
#include <stdio.h> //定義在函數外全局范圍的變量a,b是全局變量
signed short a=65535;// warning: 'initializing' : truncation from 'const int' to 'short'
unsigned short b=-1;//-1的內存狀態是唯一的,內存狀態的解釋或輸出是多樣的
void main()
{ printf("[%d,%u,%010X]\n",a,a,a); //輸出:[-1,4294967295,00FFFFFFFF]
printf("[%d,%u,%012X]\n",b,b,b);//輸出:[65535,65535,00000000FFFF]
} //int型數據在32位模式占4個字節
//[例2.4]將轉義序列中的一些字符的ASCII值以10進制數和字符方式顯示出來:
#include<stdio.h>
void main()
{ char a='\a',b='\b',t='\t',n='\n',v='\v'; //輸出結果不含定界符單引號
printf("%d,%d,%d,%d,%d\n",a,b,t,n,v); //輸出:7,8,9,10,11
printf("%c,%c,%c\n",'\"','\'','\\'); //輸出: ",',\
}
//[例2.5]格式控制輸出地址,0065是局部變量h,i段地址,0040是代碼段的段地址。
#iinclude<stdio.h>
void main(void) //函數名printf,main表示代碼的入口地址
{ short h;int i; //&h,&i表示變量h,i的地址
printf("&h=%p,&i=%p\n",&h,&i); //輸出&h=0065FDF4,&i=0065FDF0
printf("printf=%p,main=%p\n",printf,main); //輸出printf=004013D0,main=00401005
}
//[例2.6]通過鍵盤讀取字符
#include<stdio.h>
void main(void)
{ char c1,c2; /*定義兩個字符變量*/
printf("鍵入兩個字符,以逗號分隔\n");
scanf("%c,%c",&c1,&c2);
printf("c1=%c,c2=%c\n",c1,c2);
}
#include<stdio.h>
void main(void)
{ char c1,c2;
printf("鍵入兩個字符,以分號分隔\n");
scanf("%c;%c",&c1,&c2);
printf("c1=%c,c2=%c",c1,c2);
}
//[例2.7]從鍵盤輸入整型數
#include<stdio.h>
void main(void)
{ short i; int j;long k; printf("鍵入3個十進制數:");
scanf("%hd,%d,%ld",&i,&j,&k);
printf("顯示鍵入的十進制數:%hd,%d,%ld\n",i,j,k);
}
//[例2.8]輸入浮點數
#include<stdio.h>
void main(void)
{ float x,y,z; printf("鍵入3個float型數:");
scanf("%e,%f,%g",&x,&y,&z);
printf("顯示鍵入的float型數與和:%g,%e,%f,%f\n",x,y,z,x+y);
double u,v,w; printf("鍵入3個double型數:");
scanf("%le,%Lf,%lG",&u,&v,&w);
printf("顯示鍵入的double數與和:%le,%Lf,%lG,%lf\n",u,v,w,u+v);
}
//[例2.9]靜態的和活動的不變量
#include<stdio.h>
int f( const int k) // 凍結f函數的入口形參k在函數體中不得變化
{ const int j=k*k; //活動不變量j僅僅初始化一次,但可以相對變動
printf("k=%d,j=%d\t",k,j); return j;
}
void main(void) //整型常數表達式可以界定數組維數
{ const int n=3; //靜態地聲明整型常數n,這個n可以界定數組維數,如int a[n];
const int m=f(n); //m視為活動的不變量,這個m不可以界定數組維數
} //運行輸出結果為:k=3,j=9
//[例2.0] 引用用變量名初始化,變量用常數初始化
#include <stdio.h>
void f(int&r){r=3;} //引用形參r直接設置實參變量w的值
int y,z ; //定義全局變量y,z, 未明顯賦初值,此時y=0,z=0
void main(void)
{ int x(1), &u= x; //定義局部變量x,初始化為1。聲明u為x的引用
int& v=y;v=2; //聲明局部引用v為全局變量y的別名,v賦值2
int& w=z;f(w); //聲明局部引用w為全局變量z的別名,w賦值3
printf("%d,%d,%d\n",u,y,z);
} //輸出結果:1,2,3
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -