c语言复习(续)

关键字

关键字也称为保留字,具有固定含义,用户只能使用而不能改变其含义;关键字也不能做变量名。    根据关键字的作用,可将其分为四种:

数据类型关键字,控制语句关键字,存储类型关键字,其他关键字。

1、关于数据类型的关键字(12个)

(1) char :声明字符型变量或函数 

(2) double :声明双精度变量或函数 

(3) enum :声明枚举类型

(4) float:声明浮点型变量或函数 

(5) int: 声明整型变量或函数 

(6) long :声明长整型变量或函数 

(7) short :声明短整型变量或函数 

(8) signed:声明有符号类型变量或函数 

(9) struct:声明结构体变量或函数,可以用来实现C语言的封装,继承,多态等等。

(10) union:声明共用体(联合)数据类型 ,union类型可以用来提高内存的使用率。

(11) unsigned:声明无符号类型变量或函数 

(12) void :声明函数无返回值或无参数,声明无类型指针。

2、关于控制语句的关键字(12个)

循环语句

(13) for:一种循环语句

(14) do :循环语句的循环体 

(15) while :循环语句的循环条件 

条件判断语句

(16)if: 条件语句 

(17)else :条件语句否定分支(与 if 连用) 

(18)switch :用于开关语句 

(19)case:开关语句分支 

(20)default:开关语句中的“其他”分支

在case...switch语句中,当一个条件输入,从满足条件的那个case语句开始执行,直到遇到跳转指令(break;return;goto;contine;),所以建议在每条case语句后面加上break。

跳转语句

(21)goto:无条件跳转语句

(22) continue:结束当前循环,开始下一轮循环 

(23) break:跳出当前循环 

(24)return :子程序返回语句(可以带参数,也可以不带参数),在return语句之后函数中的所有指令都不会执行,所以需要确保在return语句之前执行完必要的指令。 

6.

指针函数

定义:简单的来说,就是一个返回指针的函数,其本质是一个函数,而该函数的返回值是一个指针。

声明格式为:*类型标识符 函数名(参数表)

普通函数

int ans(int x, int y) {}

指针函数

指针函数返回值就是返回的就是一个指针(地址),而普通函数返回的是类型值

int *ans(int x, int y) {}

函数指针

定义:函数指针是指向函数的指针变量,函数指针本身首先是一个指针变量,该指针变量指向一个具体的函数, 这正如用指针变量可指向整形变量, 字符型, 数组一样,这里是指向函数。

  1. &与地址详情

指针赋值

#include<stdio.h>

int main()

{

    int a = 2;

    int*b;//定义一个整形指针

    b = &a;//给指针赋值,使指针指向a的地址

    printf("%d", b);//输出的是a的地址`在这里插入代码片`

    printf("\n");//换行符

    printf("%d", *b);//*的作用是解引用,取出指针指向地址的内容,达到简

    return 0;

}

8.

地址

地址(address),我们可以把这看作是贴在盒子上的一种标签。如果你把这个地址给到了张三,张三就可以利用这个地址来找到“贴着对应标签的盒子”-------对应的变量。

在格式化输入中,我们了解到有取地址符&。所以,对于一个int类型的变量number,当我们写number的时候得到的是变量的值(即盒子里的东西),而当我们写&number的时候我们得到的就是,变量number的地址(即盒子上的标签)。举个例子:

使用取地址符可以得到内存地址

scanf("%d",&number);

通过&number得到变量number的内存地址,可以在读入值时确认要读入的内存位置。也可以用%p格式占位符将内存地址输出出来。

printf("%p",&number);

#include <stdio.h>

#include <stdlib.h>

int main(int argc, char *argv[])

{

    int *p = NULL;

    int a = 3;

    p = &a;

//打印一个变量,输出的是这个变量的值

    printf(" a  %d \n",  a);

//打印一个变量的地址,输出的是存储这个变量的地址

    printf(" &a %p \n",  &a);

//指针也是变量,它存储的是一个变量的地址,学名是它指向一个变量的地址

//当我们打印一个指针时,输出的是这个指针的值,这个值是一个变量的地址

    printf(" p  %p \n",  p);  //输出就是a的地址

//当我们打印一个指针的地址时,输出的是存储这个指针的地址

    printf(" &p %p \n",  &p); //输出的是p的地址,这个地址所存储的值是a的地址

//如果我们想取出指针所指向的变量的值,要加 *

    printf(" *p %d \n",  *p); //p是一个指针,它的值是a的地址,p等价&a,*p是a的值

    return 0;

}

输出结果:

 a  3

 &a 0x7fff12b7759c

 p  0x7fff12b7759c

 &p 0x7fff12b775a0

 *p 3

可以看出,p和&a等价,*p和a等价.

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值