目 录CONTENT

文章目录
C

C语言基础-1

~梓
2024-12-28 / 0 评论 / 0 点赞 / 24 阅读 / 0 字
温馨提示:
部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

一、数据类型表

数据类型 说明 字节数(32 位系统) 字节数(64 位系统) 取值范围
char 字符型 1 1 -128 到 127 或 0 到 255(取决于编译器是否为有符号)
unsigned char 无符号字符型 1 1 0 到 255
signed char 有符号字符型 1 1 -128 到 127
shortshort intsigned short int 短整型 2 2 -32,768 到 32,767
unsigned shortunsigned short int 无符号短整型 2 2 0 到 65,535
intsigned int 整型 4 4 -2,147,483,648 到 2,147,483,647
unsigned int 无符号整型 4 4 0 到 4,294,967,295
longlong intsigned long int 长整型 4 8 -2,147,483,648 到 2,147,483,647(32 位) -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807(64 位)
unsigned longunsigned long int 无符号长整型 4 8 0 到 4,294,967,295(32 位) 0 到 18,446,744,073,709,551,615(64 位)
long longlong long intsigned long long int 更长的长整型 8 8 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807
unsigned long longunsigned long long int 无符号更长的长整型 8 8 0 到 18,446,744,073,709,551,615
float 单精度浮点型 4 4 约 ±1.18×10⁻³⁸ 到 ±3.40×10³⁸(6 - 7 位有效数字)
double 双精度浮点型 8 8 约 ±2.23×10⁻³⁰⁸ 到 ±1.80×10³⁰⁸(15 - 16 位有效数字)
long double 扩展精度浮点型 8 或 10 或 12 或 16 8 或 10 或 12 或 16 因编译器而异

二、printf函数

printf 函数是用来输出格式化字符串的。% 是格式化说明符的起始符号

基本格式化说明符

整数类型

  • %d%i:用于输出有符号十进制整数。
#include <stdio.h>

int main() {
    int num = 123;
    printf("使用 %%d 输出: %d\n", num);
    printf("使用 %%i 输出: %i\n", num);
    return 0;
}
// 使用 %d 输出: 123
// 使用 %i 输出: 123

%% 是一个特殊的转义序列,用于在格式化字符串中输出百分号 % 本身。因为 %printf 函数里是格式化说明符的起始符号,若你想输出 % 字符,就得用 %% 来表示。

  • %u:用于输出无符号十进制整数。
#include <stdio.h>

int main() {
    unsigned int num = 456;
    printf("使用 %%u 输出: %u\n", num);
    return 0;
}
// 使用 %u 输出: 456
  • %o:用于输出无符号八进制整数。
#include <stdio.h>

int main() {
    int num = 8;
    printf("使用 %%o 输出: %o\n", num);
    return 0;
}
  • %x%X:用于输出无符号十六进制整数,%x 输出小写字母,%X 输出大写字母。
#include <stdio.h>

int main() {
    int num = 255;
    printf("使用 %%x 输出: %x\n", num);
    printf("使用 %%X 输出: %X\n", num);
    return 0;
}
// 使用 %x 输出: ff
// 使用 %X 输出: FF

浮点类型

  • %f:用于输出十进制浮点数(单精度和双精度),默认保留 6 位小数。
#include <stdio.h>

int main() {
    float f = 3.14159;
    printf("使用 %%f 输出: %f\n", f);
    return 0;
}
// 使用 %f 输出: 3.141590
  • %e%E:用于以科学计数法输出浮点数,%e 使用小写 e%E 使用大写 E
#include <stdio.h>

int main() {
    double d = 1234567.89;
    printf("使用 %%e 输出: %e\n", d);
    printf("使用 %%E 输出: %E\n", d);
    return 0;
}

// 使用 %e 输出: 1.234568e+06
// 使用 %E 输出: 1.234568E+06
  • %g%G:根据数值大小自动选择 %f%e 格式输出,%g 用小写字母,%G 用大写字母。
#include <stdio.h>

int main() {
    double d1 = 123.45;
    double d2 = 1234567890.0;
    printf("使用 %%g 输出 d1: %g\n", d1);
    printf("使用 %%g 输出 d2: %g\n", d2);
    return 0;
}

// 使用 %g 输出 d1: 123.45
// 使用 %g 输出 d2: 1.23457e+09

字符和字符串类型

  • %c:用于输出单个字符。
#include <stdio.h>

int main() {
    char ch = 'ABCD';
    printf("使用 %%c 输出: %c\n", ch);
    return 0;
}
// 使用 %c 输出: D
  • %s:用于输出字符串。
#include <stdio.h>

int main() {
    char str[] = "Hello, World!";
    printf("使用 %%s 输出: %s\n", str);
    return 0;
}
// 使用 %s 输出: Hello, World!

指针类型

  • %p:用于输出指针的地址,通常以十六进制形式显示。
#include <stdio.h>

int main() {
    int num = 10;
    int* ptr = #
    printf("使用 %%p 输出指针地址: %p\n", ptr);
    return 0;
}
// 使用 %p 输出指针地址: 00000091CC7DF624

格式化说明符的修饰符

除了基本的格式化说明符,还可以使用修饰符来进一步控制输出格式。

宽度修饰符

可以指定输出的最小宽度,若数据长度小于指定宽度,则会在左边补空格(默认右对齐)。

#include <stdio.h>

int main() {
    int num = 123;
    printf("宽度为 5 输出: %5d\n", num);
    return 0;
}
// 宽度为 5 输出:   123

精度修饰符

对于浮点数,精度修饰符指定小数点后的位数;对于字符串,指定输出的最大字符数。

#include <stdio.h>

int main() {
    double d = 3.1415926;
    char str[] = "Hello, World!";
    printf("保留 2 位小数输出: %.2f\n", d);
    printf("输出前 5 个字符: %.5s\n", str);
    return 0;
}

// 保留 2 位小数输出: 3.14
// 输出前 5 个字符: Hello

对齐修饰符

- 用于左对齐输出。

#include <stdio.h>

int main() {
    int num = 123;
    printf("左对齐,宽度为 5 输出: %-5d\n", num);
    return 0;
}
// 左对齐,宽度为 5 输出: 123

填充修饰符

0 用于在宽度不足时用 0 填充。

#include <stdio.h>

int main() {
    int num = 123;
    printf("用 0 填充,宽度为 5 输出: %05d\n", num);
    return 0;
}
// 用 0 填充,宽度为 5 输出: 00123

三、''""的区别

单引号('):用于字符赋值

  • 用途:单引号用于表示单个字符,其类型为 char
  • 存储内容:单引号里的字符会被转换为对应的 ASCII 码值,并以整数形式存储在 char 类型的变量中。
  • 示例
char c = 'A';  // 把字符 'A' 的ASCII码值(65)赋给变量 c

双引号("):用于字符串赋值

  • 用途:双引号用于表示字符串字面量,字符串本质上是由多个字符组成的数组,并且以空字符 '\0' 作为结束标志。
  • 类型:双引号括起来的字符串,其类型是 const char[],也就是指向字符串常量的指针。
  • 存储内容:字符串会被存储在内存的只读区域,赋值给变量的实际上是字符串首个字符的内存地址
  • 示例
const char* str = "Hello";  // 定义一个指向字符串常量 "Hello" 的指针
特性 单引号(' 双引号("
表示对象 单个字符 字符串(字符数组)
类型 char const char*(字符串常量指针)
赋值方式 char c = 'A'; const char* s = "ABC";
内存存储 存储单个字符的 ASCII 码值 存储字符串数组及结尾的 '\0'
示例说明 'A' 等价于数值 65 "A" 是包含 'A''\0' 的数组
0

评论区