C语言基础

本文详细介绍了C语言的基础知识,包括大小写敏感性、ASCII字符集、注释、数据类型与类型安全、字符串、布尔运算符、常量、字符常量、浮点数、变量初始化、运算符优先级以及控制流程语句(如if、for、while和switch)。此外,还讨论了字符串操作函数、逻辑运算符和可变长度数组的概念。
摘要由CSDN通过智能技术生成

大小写

C语言是大小写敏感的,包括

  1. 预定义的关键字
  2. 用户自定义的变量

ASCII字符集

C语言的语法使用ASCII字符集的低128个字符。由于UTF8在前128个字符中与ASCII是一致的,所以也可以使用。
因此,这个有效字符集以外的字符只能出现在字符串或注释中。如果使用128个字符以外的字符,必须考虑到以下因素。

  • 标准C库的字符串功能只考虑为常规字符集,因此,例如,搜索或转换可能会失败。
  • 字符串经常与printf结合使用。这里使用的字符集应与终端仿真中使用的字符集相同。

注释块

/**/和//

数据类型与类型安全

c语言中可能的数据类型:

数据类型 指针
integer int *
float float *
funktion (*)()
arrays (*)[]
struktur *

关于数据类型转换,适用以下规则:

  • 从整数到浮点数,浮点数到整数,这样的类型转化是不安全的,因为这里编译器应用了隐含的规则。
  • 对于所有其他类型,类型转化是安全的,但至少会报告一个编译器警告。
  • 但是,通过显式转化数据类型可以被 “转换”。如果你不知道你在这里做什么,请不要这样做!

编译器经常对此给出警告或错误。

String

字符串不作为一个单独的数据类型存在。它通过数据类型为Char的数组表示。

Char string[]="Hello world"

字符串以字符串结束字符0或’\0’结束。因此,必须为此保留额外的内存空间。
一些字符串操作函数:

  • strcpy(char *dest, const char *src) -> 把 src 所指向的字符串复制到 dest。
  • strcat(char *dest, const char *src) -> 把 src 所指向的字符串追加到 dest 所指向的字符串的结尾。
  • strlen(const char *str) -> 计算字符串 str 的长度,直到空结束字符,但不包括空结束字符。
  • strcmp(const char *str1, const char *str2) -> 如果返回值小于 0,则表示 str1 小于 str2。
    如果返回值大于 0,则表示 str1 大于 str2。
  • strtok(char s[], const char *delim) ->
    作用:分割字符串
    使用方法:当strtok()在参数s的字符串中发现参数delim中包含的分割字符时,则会将该字符改为\0 字符。在第一次调用时,strtok()必需给予参数s字符串,往后的调用则将参数s设置成NULL。每次调用成功则返回指向被分割出片段的指针。
#include<string.h>
#include<stdio.h>
int main(void)
{
   
    char input[16]="abc,d";
    char*p;
    p=strtok(input,",");
    if(p)
        printf("%s\n",p);
    p=strtok(NULL,",");
    if(p)
        printf("%s\n",p);
    return 0;
}

Bool

  • == 0 False
    != 0 True

  • 在if/while语句中
    if(a) 等同于 if(a!=0)
    if(!a) 等同于 if(a == 0)

  • 布尔运算符可以和所有整数操作相结合,比如:a+1 && 7 << 3 & 7

逻辑运算符

&& 与 ;|| 或
符合惰性规则

常量

整形常量

一般来说,编译器为数字整数常数分配最小的数据类型,从int开始。然而,一旦它的值超过了整数数据类型所能容纳的范围,编译器就会将其修改为下一个更大的数据类型。举例:

  • 123
  • +123
  • -123
  • 0x123 // 十六进制
  • 0123 // 八进制
  • 5123123123 // 长长整型
    用L和LL可以将一个数据强制转化为长整型和长长整型
  • 12L // 长整型
  • 4711LL // 长长整型
    用U可以将一个数据强制转化为unsigned(无符号化)
  • 12U
  • 4711ULL

Char 常量

转义字符:

  • ‘\n’ -> 换行
  • ‘\’ -> 斜线
  • ‘\t’ -> 一个制表符
  • ‘\b’ -> 退格
  • ‘\r’ -> 回到当前行行首
  • ‘\0’ -> 字符串结束符
  • ‘\f’ -> 换页
  • ‘\ooo’ -> 八进制
  • ‘\xdd’ -> 十六进制 von 0…9 A…F sind
  • ‘\udddd’ -> 四位数Unicode
  • ‘\Udddddddd’ -> 八位数Unicode

举例:‘A’ == ‘\101’ == ‘\x41’ == ‘\u0041’ == `’\U00000041’

浮点数

所有的浮点数数据类型都是

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值