C語言基礎(二)

2021-09-28 06:35:34 字數 2877 閱讀 8742

素數:找一對素數問題,他們只會出現6k-1和6k+1的地方,小於7只有一對

#include

#include

int main (

)

int n;

printf

("請輸入總人數:\n");

scanf

("%d"

,&n)

;int

*a;

a =(

int*

)malloc

(sizeof

(int

)*n)

;

指標是乙個變數,其值為另乙個變數的位址,即,記憶體位置的直接位址。就像其他變數或常量一樣,您必須在使用指標儲存其他變數位址之前,對其進行宣告。

在大多數的作業系統上,程式不允許訪問位址為 0 的記憶體,因為該記憶體是作業系統保留的。然而,記憶體位址 0 有特別重要的意義,它表明該指標不指向乙個可訪問的記憶體位置。但按照慣例,如果指標包含空值(零值),則假定它不指向任何東西。

如需檢查乙個空指標,您可以使用 if 語句,如下所示:

if

(ptr)

/* 如果 p 非空,則完成 */if(

!ptr)

/* 如果 p 為空,則完成 */

指標陣列:

;//可以這樣初始化

int *nums=;//不可以這樣初始化
char

*p1 =

"12345"

;//可以,含義為定義乙個char*形指標,並且初始化位址

int *p1=12345;//不可以

gets(str)與scanf(「%s」,str)的區別:

·gets(str)允許輸入的字串含有空格

·scanf(「%s」,str)不允許含有空格

#ifndef表示 if not define(如果沒有定義)

#ifdef表示 if define(如果定義了)

函式的使用方式與全域性變數類似,在函式的返回型別前加上static,就是靜態函式。其特性如下:

靜態函式只能在宣告它的檔案中可見,其他檔案不能引用該函式

不同的檔案可以使用相同名字的靜態函式,互不影響

·非靜態函式可以在另乙個檔案中直接引用,甚至不必使用extern宣告

傳參操作:

#include

int errno =3;

inttest

(int

*errno)

intmain()

用法一
typedef

struct

mytype (結構體型別名)

;// 結構體別名用大駝峰風格

const mytype test=

,,};

//宣告test結構體變數

用法二
struct listnode (結構體名)

(這裡可新增結構體變數名)

;struct listnode *head =

(struct listnode*

)malloc

(sizeof

(struct listnode)

);

用法三
typedef

struct tagnode (結構體名)

node (結構體型別名)

;// 型別主體用大駝峰風格

方法一:形參給出第二維的長度

void func(int n, char str[ ][5] )

方法二:形參宣告為指向陣列的指標
void

func

(int n,

char (*str)[5]

)

方法三,形參宣告為指標的指標
void

func

(int n,

char

**str)

附加,第三種傳參方式說明:

在函式中使用傳參過來的二維陣列(指標)進行陣列取值的時候不能使用(array[i][j])這種形式來取值。應該將二維陣列看成乙個一維陣列,使用array[i * j + j]這種形式來進行取值。

個人理解:

這是因為在傳參的時候,我們將array陣列當成二級指標來進行傳遞,所以我認為他是將陣列的屬性退化成了二級指標的屬性,因此這裡並不能使用array[i][j]這種方式來進行陣列取值。輸出格式如下

#include

void

finddiagonalorder

(int

**matrix)

}int

main()

,,};

finddiagonalorder

(matrix)

;system

("pause");

return0;

}

C語言基礎 二

迴圈 for int i 1 i 100 i 迴圈示例 1.for int i 0 i 9 i for int j 0 j i j printf n 2.倒三角for int i 5 i 0 i printf n 2.函式 void 自定義函式應該在主函式內呼叫 函式宣告 的位置必須在主函式之上 對...

c語言基礎(二)

目錄 識別符號的定義規則 三數比大小 判斷閏年 指標基礎 插入排序 只能是字母,數字,和下劃線,並且開頭不能用數字 賦值表示式跟賦值語句的區別 表示式沒有分號,賦值語句有分號 邏輯運算子的優先順序順序 includeint main if a c if b c printf d d d a,b,c ...

C語言基礎(二)

二進位制數 定義 滿2進1,並且只有0或1 例如 6 0000 0110 格式化字元 d八進位制數 定義 滿8進1,0到8,並且以0開頭 例如 0001 0000 020 格式化字元 o十進位制數 定義 滿10進1,0到9 例如 0001 0000 16 格式化字元 d 十六進製制 定義 滿16進1...