栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言学习笔记:关键字、指针

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言学习笔记:关键字、指针

常见的关键字:

  1. c语言提供的,不能自己创建关键字
  2. 关键字不能做变量名(变量名不能和关键字冲突)
  3. auto是自动变量,每个局部变量都是auto修饰的。*

break,case,char,const,continue,default,do,double,else,enum,extern,float,for循环语句,goto,if,int,long,register,return,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile,while

int main()

{

    {

         int a = 10; //自动创建,自动销毁-自动变量

         //auto int a=10; 但auto省略了,故直接int

    }

}

signed 有符号的(有正负号的)

unsigned 无符号的

static 静态的:

1.修饰局部变量,改变了局部变量的生命周期(本质上是改变了变量的存储类型)

2.修饰全局变量,使得这个全局变量只能在自己所在的源文件(.c)内部可以使用,其他源文件不能使用。全局变量,在其他源文件内部可以被使用,是因为全局变量具有外部链接属性,但是被static修饰后就变成了内部链接属性,其他源文件就不能链接到这个静态的全局变量了。eg:例子1

3.修饰函数,使得函数只能在自己所在的源文件内部使用,不能在其他源文件内部使用。本质上讲,static是将函数的外部链接属性变成了内部链接属性。(和static修饰全局变量一样)eg:例子2

typedef 类型定义

union 联合体、共用体

关键字:

typedef unsigned int u_int;

int main()

{

    unsigned int num = 100;

    u_int num2 = 100;

    return 0;

}

eg:static例子1:

void test()

{

    int a = 1;      //a是局部变量,出了局部范围就会销毁

    a++;            //static int a=1 加了static之后,修饰局部变量,改变了局部变量的生命周期(本质上是改变了变量的存储类型)

    printf("%d ", a);

}

int main()

{

    int i = 0;

    while (i < 10)

    {

         test();

         i++;

    }

    return 0;

}

eg:
static例子2:

在相同文件中创建两个源文件01和02。分别写入以下代码:

int Add(int x, int y)
{
	return x + y;
}

extern int Add(int x, int y);
int main()
{
	int a = 10;
	int b = 20;
	int sum = Add(a, b);
	printf("sum=%dn", sum);
	return 0;
}

第二个代码中的extern声明外部函数,而将extern改为static后,就会无法解析外部符号。

//c语言中,void是空的意思,代表函数类型是无返回类型,免用return语句

栈区:局部变量函数的参数

堆区:动态内存分配的

静态区:全局变量static修饰的静态变量

//define是一个预处理指令

  1. define定义符号,常量

#define MAX 1000

int main()

{

    printf("%dn", MAX);

    return 0;

}

    2. define定义宏

#define Add(X,Y) ((X)+(Y))       //宏是有参数的

int main()

{

    printf("%dn", 4 * Add(2, 3));

    return 0;

}

 

指针:

#include

int main()

{

    int a = 10;                  //a在内存中是要分配空间的--4个字节

    printf("%pn", &a);    //%p是专门用来打印地址的

     int * pa=&a;         //pa是用来存放地址的,在c语言中pa叫指针变量

                                  //* 说明pa是指针变量; int说明pa执行的对象是int类型的

    return 0;

}

例子2:

int main()

{

    char ch='w';

    printf("%pn", &ch);

    char * pc = &ch;

    return 0;

}

int main()

{

    int a = 10;

    int* pa = &a;

    *pa = 20;                  //*解引用操作;*pa就是通过pa里边的地址,找到a,修改a

    printf("%dn", a);

    return 0;

}

指针的大小是相同的,指针是用来取地址的,指针需要多大空间,取决于地址的存储需要多大空间

32位 32bit—4byte

64位 64bit—8byte

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/966388.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号