使用strcat、strcpy,strcmp,strlen,strlur,strupr函式時,需要包含#include的標頭檔案
strcat 連線字串
strcpy 複製字串
char c1[10] = 「abc」;
char c2[10] = 「xyz」;
strcpy(c1,c2)複製後:c1存放:xyz\0
strcmp 比較字串【比較的不是大小而是每個字元的acsii碼的值】
x = strcmp(c1,c2)
x > 0; c1 > c2
x < 0; c1 < c2
x = 0; c1 = c2
二維陣列可放多個字串,列的長度應按最長的計算。
如果字串賦值給了乙個一維陣列,一維陣列的名字代表首位址。
如果定義時沒有賦值內容,以下是錯誤的。
char a[10]1, a[10] = 「char」;
2, a = 「char」;
3, a[9] = 「a」【正確的是a[9] = 『a』】
輸入scanf("%s",c);\一次只能輸入不帶空格的字串
需要輸入帶空格的:gets()
scanf("%s",c);
how are you?
c中記憶體儲存:how\0
scanf("%s%s%s",c1,c2,c3)
how are you?
c1:how\0
c2:are\0
c3:you!\0
輸出。乙個個輸出,%c,就像普通陣列一樣用迴圈輸出。
整體輸出,%s, printf("%s",c);//遇到第乙個』\0』結束輸出。
puts();輸出字串時會把末尾的『\0』轉換成『\n』
printf(「%s」,c[5]);從第六個開始輸出。
指標變數做函式引數。
int x(int *p)
{}一般來說是形參決定實參的型別。
一維陣列的位址和指標
陣列的指標:陣列的起始位址
元素的指標:陣列元素的起始位址
int p = &a[0];
表示方法:
1、下標法:a[i]
2、指標法:(a+i) 或者 *(p+i)
*p++與 *(p++)等價,先引用,後加一;
(*p)++:指向的元素值加一
指向陣列的兩個指標相減,得到的是指標的偏移量
二維陣列位址
a 首行位址
a[0], *(a+0), *a 0行0列,列位址
a+1,&a[1] 第一行首位址,行位址
a, *(a+1) 第一行第0列的元素位址
a[1]+2, *(a+1)+2, &a[1][2] 第一行第1列的元素位址
(a[1]+2), ((a+1)+2), a[1][2] 第一行第2列的元素的值
& , *;互相抵消
指向指標的指標
printf(「%o\n」,*p);//輸出位址
printf("%s\n",*p);//輸出字串
二維陣列元素位址計算表:
動態陣列(不用的時候記得釋放,否則會出現記憶體洩漏)
malloc()函式
void *malloc(unsigned int size) //以位元組為單位
若未能成功執行,則返回空指標(null)
eg。long *p;
p = (long *)malloc(8);//返回的是void型指標,需要進行強制轉換才能用。
calloc()函式
void *calloc(unsigned int n, size)//size是固定的
分配n個長度為size的連續空間,相當於一維陣列。
eg:long *p;
p = (long *)calloc(5,4);
free()釋放空間函式
eg:long *p;
p = (long *)calloc(5,4);
free(p);
realloc()函式
擴大或縮小原儲存空間
eg:long *p;
p = (long *)calloc(5,4);
p = realloc(p,10);
free(p);
C語言學習
c語言學習 2013 3 26 1 編寫strcat s,t 函式,功能 將t指向的字串複製到s指向的字串的尾部。程式設計思路 1 通過while迴圈找到字串s的結束符。2 從找到的結束符開始將t複製到s,同時移動二者的指標。2 編寫函式strend s,t 如果字串t出現在字串s的尾部,該函式返回...
c語言學習
今天總結一些c 語言方面的知識 變數的概念 其值在作用域內可以改變的量稱為變數。乙個變數應該有乙個名字,並在記憶體中佔據一定儲存空間。區域性變數和全域性變數 區域性變數是在函式內作定義說明的,其作用域僅限函式內,離開該函式再使用這種變數是非法的。全域性變數也稱為外部變數,是在函式外部定義的變數,它不...
c語言學習
計算機工作基本原理 現代計算機可分為幾個部件 cpu 處理單元 擔負著絕大部分的計算工作。ram 隨機訪問儲存器 作為乙個工作區來儲存程式和檔案。硬碟 永久儲存器 即使在計算機關機時也能記下程式和檔案。以及各種外圍裝置 如鍵盤,滑鼠和監視器 用來提供人與計算器之間的通訊。cpu工作過程 從記憶體中獲...