十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
現(xiàn)在主要用于操作系統(tǒng)和嵌入式系統(tǒng)
指針必須指向地址,指針作為參數(shù)就要傳入地址,所以只要是指針就要想到地址
地址的改變 ①: 加減即可
char *a="abcd";
printf("%c\n",*a);//傳入的只是首地址a
printf("%c\n",*++a);//第二個地址的數(shù)b
char *s[2]={"123","222"};
printf("%c\n",s[0][1]);//輸出2
printf("%s\n",s[1]);//輸出222
我的理解 :
沒有指針會報錯,因為一個下標的地址只能放一個char,然而加了指針則不會報錯,我認為是這相當于是一個指針數(shù)組,每個下標都是一個指針。
和數(shù)組訪問一樣可以用下標,訪問單個值時只能用%c,%d這些
char *s="0123" ;
printf("%c",s[2]);//2
三:關鍵字typedef 用于起別名,一般用于結(jié)構(gòu)體,比較簡便
typedef 類型名 別名
如:
typedef struct{} 別名
typedef int 別名
四:sizeofint str[]={1,2,3,4};
printf("%d\n",&str[0]);//6487552
list=createList(str,length);
LinkList createList(int data[],int length){printf("%d\n",data);//6487552
可以看出只是把頭地址傳進去了。
char name[10]="goner";
char* str=name;
printf("%d,%d",sizeof(str),sizeof(name));//8,10
因為:sizeof判斷的是整個的大小,數(shù)組留出了10個所以就是10。注意:指針的8,這兒的判斷指針的大小,并不是判斷它指向值得占空間大小,而是判斷的是指向這個值的指針大小,32位計算機是4, 64位的則是8。
五:格式化輸出符號 | 可用 |
---|---|
%s | 可直接輸出a[]與*a定義的字符串 |
%c | 可直接輸出a[]與*a定義的單個字符 |
%d | 輸出數(shù)字(可輸出地址,整數(shù),) |
int i,j=0;
char a[]="ssss";
printf("%c\n",a[2]);//這兒不能用%s會沒有輸出結(jié)果
printf("%s\n",a);
六: true與false0 表示false
其他的數(shù)字都表示true
一:由 \0結(jié)尾
八:*與&*表示解析地址(及指針)
& 表示輸出這個變量等的地址
導入的意思
int a=100;
printf("%o\n",a);//144
printf("%#o",a);//0144
由上可得:加了**#會把八進制,六進制完整的輸出**。
十四:對于\0char str[10]={'q','w','e','r'};
str[3]=0;
printf("%s",str);//qwe
char str[10]={'q','w','e','r'};
str[2]=0;
printf("%s",str);//qw
十五:#define#include#include#define s(x) x*x
int main()
{ printf("%d",s(2+3));// 2+3*2+3=11
return 0;
}
十六:getchar()一個getchar()會從緩沖區(qū)接收一個字符
輸入:wdfg
int a=getchar();
int c=getchar();
a=w c=d
你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧