学习笔记:C语言(Mac)

一.基本命令

1.编译命令:(生成.o文件)

cc -c filename.c

2.链接命令:(生成.exe文件)

cc filename1.o filename2.o filename3.o
cc -o 自定义文件名 filename.o

3.运行命令:

./filename  //其中./表示当前目录

二.指针

1.指针的定义:(*说明后面是指针变量)

int a=10;
int *p1 = &a;       //指向数值的指针
int **p2=&p1;       //指向指针的指针

2.指针运算符:(*是指针运算符,访问指针指向的变量值)

*p1 =9;     //等价于a=9;

3.void *指针:(可以指向任意类型的指针)

int a = 10;
char *string = "name";
void *p1 = &a;         //指向数值的指针
void *p2 = string;     //指向字符串的指针

三. 内存:栈区、堆区、静态存储区

1.自动变量

auto修饰的局部变量,栈区,auto可省略。
执行是创建,执行完毕自动销毁。

2.静态变量

static修饰的变量,静态存储区,只初始化一次。
不会销毁,直至程序退出。
static int b = 0;

3.寄存器变量

register修饰的自动变量,硬件寄存器中。
只限于int,char,浮点型,指针类型变量使用。
函数结束时销毁。

四.其他相关

1.宏

//define 宏名 宏内容(后面不带分号)

#define PI  3.14

2.typedef

1>.宏定义后面不能加分号
2>.宏名一般是大写
3>.同名字符串不会被值替换
<pre name="code" class="plain">//带参数的宏,参数列表无需类型
#define 宏名(参数列表) 宏内容
 
 
//不带参数的宏
#defiine PI 3.14

3.结构体

//定义结构体,定义时不会分配内存
struct Student{
        char *name;
        int age;
        float height;
};

//正确的初始化
struct Student S1 = {"Jake",22,1.78};

//错误的初始化(同数组)
struct Student S1;
S1 = {"Jake",22,1.78};

//定义一个结构体数组
struct Student Stus[2];

4.外部函数、内部函数

1>.外部函数
extern修饰,可省略,允许其他文件访问调用。
wx.h   文件1
   int b;

task1.c  文件2
  extern int b;  //声明变量b在外部文件已定义


2>.内部函数
static修饰,被其他文件中的函数调用时,可编译通过,链接时会出错。只能在其定义所在的文件使用。
static修饰的全局变量只能在当前文件使用,是当前文件私有的全局变量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值