char类型数组赋值整数,求数组长度

简介: char类型数组赋值整数,求数组长度

求下面代码打印结果:

1. #include<stdio.h>
2. #include<string.h>
3. 
4. int main()
5. {
6.  char a[1000] = { 0 };
7.  int i = 0;
8. 
9.  for (i = 0; i < 1000; i++)
10.   {
11.     a[i] = -1 - i;
12.     printf("%d\n", a[i]);
13.   }
14. 
15.   printf("%d", strlen(a));
16.   return 0;
17. }

分析:

(1)当 i = 0~127时,a[i]为:
        -1-0,-1-1,-1-2,····,-1-127
        即-1,-2  ,-3    ,····,-128

(2)当 i = 128时:
       -1-128=-1 +(-128)

       计算-1+(-128)

1. 10000000 00000000 00000000 00000001 -1原码
2. 11111111 11111111 11111111 11111110 -1反码
3. 11111111 11111111 11111111 11111111 -1补码
4. 
5. 10000000 00000000 00000000 10000000 -128原码
6. 11111111 11111111 11111111 01111111 -128反码
7. 11111111 11111111 11111111 10000000 -128补码
8. 
9. 11111111 11111111 11111111 11111111 -1补码
10. 11111111 11111111 11111111 10000000 -128补码
11. 11111111 11111111 11111111 01111111 和
12. 
13. char类型截断
14. 01111111 - 127

       当 i = 129时:
       -1-129=-1 +(-129)

       计算-1+(-129)

1. 10000000 00000000 00000000 10000001 -129原码
2. 11111111 11111111 11111111 01111110 -129反码
3. 11111111 11111111 11111111 01111111 -129补码
4. 
5. 11111111 11111111 11111111 11111111 -1补码
6. 11111111 11111111 11111111 01111111 -129补码
7. 11111111 11111111 11111111 01111110 和
8. char类型截断
9. 01111110 - 126

因此,当i>=128时,a[i]为127,126,····,1,0

arr的元素为-1,-2  ,-3 ,····,-128,127,126,····,1,0,-1,-2  ,-3    ,····,-128,127,126,····,0,·····

strlen求的是\0之前的字符个数,即第一个0之前的元素个数=255


相关文章
|
6月前
|
存储 编译器 C语言
c语言中char的作用类型
c语言中char的作用类型
208 0
|
1月前
|
SQL 存储 关系型数据库
SQL判断CHAR类型字段不为空的方法与技巧
在SQL查询中,判断一个CHAR类型字段是否不为空是一个常见的需求
|
2月前
|
存储 Java Windows
java基础(9)数据类型中的char类型以及涉及到的转义字符
Java中的char类型可以存储一个中文字符,因为它占用两个字节。转义字符允许在代码中使用特殊字符,例如`\n`表示换行,`\t`表示制表符,`\\`表示反斜杠,`\'`表示单引号,`\"`表示双引号。可以使用`\u`后跟Unicode编码来表示特定的字符。
54 2
java基础(9)数据类型中的char类型以及涉及到的转义字符
|
3月前
|
存储 自然语言处理 编译器
C语言中的char类型
C语言中的char类型
238 1
|
6月前
|
存储 关系型数据库 MySQL
MySQL字段的字符类型该如何选择?千万数据下varchar和char性能竟然相差30%🚀
本篇文章来讨论MySQL字段的字符类型选择并深入实践char与varchar类型的区别以及在千万数据下的性能测试
MySQL字段的字符类型该如何选择?千万数据下varchar和char性能竟然相差30%🚀
|
5月前
详细解读C++char类型函数
详细解读C++char类型函数
54 0
|
5月前
|
C++
E0144 “const char *“ 类型的值不能用于初始化 “char *“ 类型的实体
E0144 “const char *“ 类型的值不能用于初始化 “char *“ 类型的实体
|
6月前
|
C++
【C++】std::string 转换成非const类型 char* 的三种方法记录
【C++】std::string 转换成非const类型 char* 的三种方法记录
163 0
|
6月前
|
存储 人工智能 编译器
learn_C_deep_5 (温故知新、sigend char a = -128的深度理解、unsigned int类型的写法规范)
learn_C_deep_5 (温故知新、sigend char a = -128的深度理解、unsigned int类型的写法规范)
|
6月前
|
存储 算法 安全
C++系列-第1章顺序结构-9-字符类型char
C++系列-第1章顺序结构-9-字符类型char