Linux C语言教程(一) 数据类型

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/susidian/article/details/82833760

一、基础类型

1.1 整型

整型常量的第一个字符是数字0,该常量会被视作八进制,千万不要为了格式对齐,将十进制整型写成八进制。

1.1.2 枚举

1.2 浮点型

1.3 指针

1.3.1 字符指针

C语言是静态弱类型语言,类型在编译时需要确定,对于string类型,由于它的大小无法在编译时确定,所以C语言中没有string类型,通过char *和char []可以定义字符串,不能使用运算符进行字符串比较,因为C语言中字符串名称指向字符串首位字符地址,若用运算符来比较字符串比较的是字符串首位字符的地址,不是字符串值的比较。

#include <stdio.h>

int main() {
    char str1[] = {'h', 'e', 'l', 'l', 'o'};
    char str2[] = {'h', 'e', 'l', 'l', 'o', '\0'};
    char str3[5] = {'h', 'e', 'l', 'l', 'o'};
    char str4[] = "hello";
    char *str5 = "hello";
    printf("str1[%s] length[%lu] sizeof[%lu]\n", str1, strlen(str1), sizeof(str1));
    printf("str2[%s] length[%lu] sizeof[%lu]\n", str2, strlen(str2), sizeof(str2));
    printf("str3[%s] length[%lu] sizeof[%lu]\n", str3, strlen(str3), sizeof(str3));
    printf("str4[%s] length[%lu] sizeof[%lu]\n", str4, strlen(str4), sizeof(str4));
    printf("str5[%s] length[%lu] sizeof[%lu]\n", str5, strlen(str5), sizeof(str5));
   
    return 0;
}

输出:

str1[hello] length[5] sizeof[5]
str2[hello] length[5] sizeof[6]
str3[hellohello] length[10] sizeof[5]
str4[hello] length[5] sizeof[6]
str5[hello] length[5] sizeof[8]

C语言中字符和字符串也是有区别的,字符用单引号表示,实际代表一个整数,而字符串用双引号表示,代表指向无名数组起始字符的指针。注意字符串赋值时一定不要使用单引号,否则会引发意想不到的结果,如下代码直接引起coredump。

char *str = 'dianjing';
printf("str[%s]\n", str);

二、复合类型

2.1 数组

2.2 共用体

2.3 结构体

三、数据类型转换规则

猜你喜欢

转载自blog.csdn.net/susidian/article/details/82833760
今日推荐