1218C++草稿

1218C++

課堂

指針是帶類型的地址
移動指針

兩種寫法
int c,*pc=&c;

int c,*pc;
pc=&c;

-那移動指針有什麼作用呢?
-保持疑問,繼續學下去就知道了

數組名是一個常量指針,數組名不能做加減運算;
int *ptr=myArray,
*ptr表示的是myArray的第一個元素,此時ptr和myArray等價,ptr[5]=myArray[5]
*myArray可行
*(myArray+1)可行(沒有因爲myArray常量而排斥他=>因爲這個常量攜帶了地址及數據類型)
&*&p  vs.  &&*p=>不同
&&*p是錯的,因爲&*p是一個地址值,不是變量,它就沒有地址	
**&p呢?    
指針數組每個元素都是指針,每個指針可以指向不同的東西??
    char *week[4]={"Sunday","Monday","Tuesday","Wednesday"}
對字符數組的特殊支持:cout<<s<<endl;輸出的是從s[0]~s[最後一位]
cout<<week[0]<<endl;
min[1}=(*ap>*(ap+1))?(ap+1):min{1};
=>error C2143: syntax error : missing ';' before '{'

		min[1]=(*ap>*(ap+1))?(ap+1):min[1];
=>':' : no conversion from 'int' to 'int *'

區別:

*ip+1,*(ip+1)前者是元素加1,後者是地址加1
待解決:
 char *week[4]={"Sunday"/*雖然...*/,"Monday","Tuesday","Wednesday"};
	cout<<*week[0]<<endl;
	//"Sunday"對應的地址呢?
	cout<<&week[0]<<endl;
	/******
	int myArray[5]={0},*ia=myArray,*iaa=&myArray;
	cout<<ia<<endl<<*iaa<<endl;
	*******/

調試:

調試和
Vc6.纔會有這個毛病
關了窗口之後還需要shift+f5,因爲沒有實際退出調試
不要在調試過程中修改代碼
改完之後按go雖然運行但不是重新運行,而是繼續運行??例如從for的第2個循環繼續往下

斷點:f9 可以設置在語句中=>在要斷點的地方另起一行
	區別:一種會返回f(1),f(2)??
go直接跑到緞帶你的地方,直接跑到i=20的地方?
有可能是... 所以函數的首句一般要斷點
斷點+go f10 step over?
調試 1個小時的視頻?
        
        
調試突然斷開:數組越界或者指針出問題

二分查找法:背誦
cout>>下標+1
define的時候需要用()防止出錯 1970年元旦



疑惑

引不引入<time.h>使的srand(time(0))似乎沒有區別?

&&*p!=**&p
強制類型轉換要加括號,所以(float*)??
float *fp=(float*)ip 浮點指針類型,不是浮點類型 所以不能寫成(float)*ip

p1+n
=>p1+n*sizeof(int)=>指向往後第n個元素,即與指針運算時n的單位的是"數據單位",視p1指針類型而定
即以數據單位進行運算而不是以地址單位進行運算


報錯

#define SIZE
void creatArray(int [],int);
creatArray(s,SIZE);
=>error C2059: syntax error : ')'
=>SIZE沒有定義,雖然提示的是creatArray這裏()的錯誤

void creatArray(int s[],int size){
	srand(time(0));
	s[]={0};<--
	for(int i=0;i<size;i++)
		s[i]=RAND_NUM;
}
=>error C2059: syntax error : ']'
只有在聲明的時候可以初始化

void maint(){
=>	unresolved external symbol _main
    fatal error LNK1120: 1 unresolved externals


int compare(int s1[],s2[],int n)
=>syntax error : identifier 's2'
    定義函數的時候s2前面忘了int

	int myArray[5]={0},*ia=myArray,*iaa=&myArray;
=>
C:\Software\Microsoft Visual Studio\VC6\MyProjects\1218Class\1218Class.cpp(8) : 

void mysum(int [],int,int,int[],int,int){
=>local function definitions are illegal

int a1[LENGTH+1]={0},a2=[LENGTH+1]={0},sum[LENGTH+1]={0};
=>syntax error : '['

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章