得心應手的工具掌握起來的困難程度要大於普通工具
數組A[N]的下標爲0~N-1
main的返回值0,表示成功調用
單引號引起的 整數:整數值對應於該字符在編譯時字符集中的序列值。如‘A’
雙引號引起字符串.如“hello”
If與else配對(else總是找最近的一個if)
聲明與定義:聲明在頭文件中,如果多個cpp用到了頭文件,編譯時重定義問題,這樣有兩個解決方法
if udefine/define或者加上聲明前加上extern關鍵詞
指針與數組
數組只能確定該數組的大小;獲得下標爲0的元素的指針
其他操作都是指針運算
非數組的指針
分配字符串空間(長度爲N的字符串需要N+1的空間)
char *r;
r=malloc(strlen(s)+1);
作爲參數的數組聲明
字符數組,字符指針(%s輸出時從當前的字符開始逐個輸入,直到遇到/0爲止)
char hello[]="hello world";
printf("%s/n",hello);字符串名稱
作爲參數的數組毫無意義,數組名立刻轉換爲指向該數組第一個元素的指針
char *p=hello;
printf("%s/n",&hello[0]);
printf("%s/n",p);
輸出的都是整個字符串中的東西
int a,b,c;
printf("please input a,b,c");
scanf("%d,%d,%d",&a,&b,&c);地址
printf("a=%d,b=%d,c=%d",a,b,c);變量
&的作用進入電影院看電影要入場券而出來不用入場券(printf都用變量名爲參數,但是在參數爲數組名時等價於傳指針)
空指針不是空字符串
extern char p[]是空字符串
extern char *p可以指向任意字符串空間,指針要賦值
數組和循環的邊界問題