C中常用的关键字与函数

typedef 关键字 给类型取别名

使用方式:typedef 原类型名 新类型名;

例: typedef struct people ren_t

#include <stdio.h>

void func(int a)
{
    printf("a=%d\n",a);
}

//给函数类型取别名
typedef void func_t(int);

//给函数指针类型取别名
typedef void (*func_pt)(int);

int main()
{
    printf("main=%p\n", main);
    //定义函数指针 指向 函数func
    //void (*fp)(int) = func;
    
    //使用函数类型别名定义 函数指针
    //func_t *fp = func;
    func_pt fp = func;

    //通过函数指针 调用其指向的函数 
    (*fp)(20);
    fp(30);
    return 0;
}


sizeof 运算符

是C语言中 保留关键字,也可以认为是一种 运算符,单目运算符 不是函数

char s1[10] = "abcd!",s2[10]= "\n123";

printf("%ld%d\n",sizeof(s1),strlen(s2));

输出 结果是 10 4

strlen( )测试字符串长度

注:头文件 #include <string.h>

当测试字符串时,从第一个字符开始,直到遇到 '\0' 结束,所以长度不包含 '\0'

strlen() 长度不包含'\0'

static

1.static 修饰局部变量

改变存储位置为 静态区 就会具有静态区的属性:生命周期延长 不受栈区影响 程序启动时就会被创建

只会被创建一次 ,即程序启动时 后续反复调用函数 不会被重复初始化,但可以赋值

2.static 修饰全局变量

限制全局变量作用域 只能在本文件使用 防止当多个用户共同编译时,防止重名的情况

3.static 修饰函数

限制函数作用域 只能在本文件使用该函数

const 关键字 常量

定义这样一种变量,它的值不能被改变,在整个作用域中都保持固定。

 

0

strcmp( ) 只能用于比较两个字符串

返回值:返回整数值

函数原型: int strcmp(const char *s1,const char *s2);

设这两个字符串为s1,s2,

规则

当s1

当s1=s2时,返回值= 0

当s1>s2时,返回正数

即:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止。如:

"A""A" "computer">"compare"

memset( ) 赋值

作用是将某一块内存中的内容全部设置为指定的值, 这个函数通常为新申请的内存做初始化工作。

注:头文件 #include

memset ( void * p, int n ,sizeof (*p)); //将sizeof (*p)的内存空间大小*p 设置为 n

 

memcpy( ) 内存拷贝:可以用于复制数组

memcpy(目标数组名,原数组名,长度单位字节);

注: #include <string.h> 头文件 

目标数组长度 >= 原数组长度

int a[5],b[5];

memcpy(a,b,20); 将b数组复制到a数组中,20为4*5,4为 int 类型字节数;

atoi( ) 字符串转换为 整数

注:库函数 #include

int atoi(const char *nptr); //字符串转换为 整数 int

long atol(const char *nptr); //字符串转换为 整数 long int

double atof(const char *nptr); //字符串转换为 小数 double

0个位数: (num / 1) % 10;

1十位数: (num /10 ) % 10;

2百位数: (num /100) % 10;

...n 位数: (num / m ) %10;

calloc ( ) 从堆上分配指定的内存空间

原型:void *calloc(size_t n, size_t size);

比 malloc函数 多一个参数,并不需要人为的计算空间的大小

calloc在申请后,对空间逐一进行初始化,并设置值为0。

malloc( ) 从堆上分配指定的内存空间

原型:void *malloc (int size);

例如:

int *p = (int *) malloc ( 20 * sizeof ( int ) )

例如:

#define maxsize 10

int *p=(int *) malloc (maxsize * sizeof (int));

 calloc ( ) 和 malloc( ) 的区别:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值