C語言溫習

2021-07-10 20:40:25 字數 3612 閱讀 9188

學習** 

#include #include #include "hello.hpp"

#include #include //c語言主要是面向過程,物件導向是一種思路,一種思維方式。

void score(int score) else if (score >= 80) else if (score >= 60) else

}void score1(int score)

}int max(int a,int b)

//c語言結構體

struct people ;

//自定義型別,使用方便

typedef structpeople1;

//定義函式指標,使用時直接用func p;

typedef void (*func)();

//函式

void sayhello()

//物件導向思想

//objectstart>>>>>>>>>>>>>>>>>>>>>

#define objectfield \

void(*ondelete)(void *);

typedef struct object object;

#define objectcreate(type) malloc(sizeof(type))

#define objectdelete(obj)

void objectondelete(void *obj)

object *objectinit(object *obj)

//objectend<<<<<<<<<<<<<<<<<<<<<<<

//people2start>>>>>>>>>>>>>>>>>>>>>

typedef structpeople2;

void peoplesayhello()

void peopleondelete(void *p)

people2 *peopleinit(people2 *p,int age)

//people2end<<<<<<<<<<<<<<<<<<<<<<<

int main(int argc, const char * argv)

// int i = 0;

// do while (i < 100);

/* struct people p;

p.age = 10;

p.name = "xiaoyang";

printf("name=%s age=%d\n",p.name,p.age);

// 結構體賦值為copy,兩個指標不想相同

struct people p1 = p;

printf("name=%s age=%d\n",p1.name,p1.age);

p.name = "yangxiao";

p.age = 11;

printf("修改p後p:name=%s age=%d\n",p.name,p.age);

printf("修改p後p1:name=%s age=%d\n",p1.name,p1.age);

*/

/*// malloc(<#size_t#>)函式需要匯入#include 庫

struct people *p = malloc(sizeof(struct people));

p->age = 10;

p->name = "xiaoyang";

// 結構體指標賦值的是retain,兩個指標相同

struct people *p1 = p;

p->age = 11;

p->name = "yangxiao";

printf("修改p後p1:name=%s age=%d\n",p1->name,p1->age);

// 結構體指標在不用的時候需要釋放,因為兩個結構體的指標相同,所以只需要釋放一次

free(p);

printf("p指標=%p p1指標=%p\n",p,p1);

*/

/*// 通常呼叫函式直接呼叫:sayhello();

// 宣告乙個返回值為void的函式指標p,p只能賦值返回值為void型別的函式指標

void (*p)();

printf("賦值前%p\n",p);

// 函式指標賦值為sayhello

p = sayhello;

printf("賦值後%p\n",p);

// 執行函式指標

p();

*/

// people2 *p2 = peopleinit(objectcreate(people2), 10);

// printf("%d\n",p2->age);

// p2->sayhello();

// objectdelete(p2);

// sayhello();

定義乙個緩衝區

// char buf[100];

清空一片區域

// memset(buf, 0, 100);

拼接一段字串,需要匯入檔案// sprintf(buf, "hello %d,%.2f,%s\n",100,1.2,"拼接完成");

// printf("%s",buf);

// 寫入資料

// file *f = fopen("data.text", "w");

// if (f != null)

// fclose(f);

讀取資料

// file *f = fopen("data.text", "r");

讀取到最後乙個位元組

// fseek(f, 0, seek_end);

// long size = ftell(f);

// char buf[size + 1];

重置到第乙個位元組

// fseek(f, 0, seek_set);

把檔案讀取到buf裡

// fread(buf, sizeof(unsigned char), size, f);

設定\0結尾

// buf[size] = '\0';

// fclose(f);

// printf("%s\n",buf);

// 猜數字小遊戲start>>>>>>>>>>>>>>>>>>>>>>>>>>>>

// 需要匯入// rand()方法需要乙個種子,根據種子來生成隨機數,這裡選用系統時間,需要匯入time.h

srand((int)time(null));

int randnum = rand()%100;

printf("請輸入乙個0-100中間的數字\n");

int userinput;

while (1) else if (userinput < randnum) else

}printf("exit\n");

// 猜數字小遊戲end<<<<<<<<<<<<<<<<<<<<<<<<<<<<

return 0;

}

PTA c語言溫習計畫

因為我個人的編碼能力實在是太差了,大一上的時候很多 處於看懂但自己放掉資料純手打根本很難完成,於是想通過完成pta上的一些題目來加強自己的編碼能力,目前的小目標是45道函式題目完成三十道,主要目的是查缺補漏。第一題 warning ignoring return value of scanf dec...

C 基礎溫習 1 溫習控制台程式(一)

我開始學c 的時候是從控制台程式開始的,現在就溫習一下控制台程式。首先我們新建乙個控制台應用程式,新建的過程我就不細說了,建立成功後我們會看到如下 using system using system.collections.generic using system.linq using system...

C 快速溫習筆記 高階 4

模板 函式模板 template ret type func name parameter list e.g.template t add t a,t b cout add 3,6 cout add 1.1,2.2 類模板 template classclass name e.g.template ...