No1
C选项错误
No2
错误选项C
No3
No4
#include <stdio.h>
int main()
{
int arr[] = { 1,2,(3,4),5 };
printf("%d\n", sizeof(arr));
return 0;
}
(3,4)=4
数组元素个数: 4
数组总大小: 16
在 C 语言中,sizeof(arr)
返回的是整个数组 arr
占用的内存空间的总字节数(即数组所有元素在内存中占用的字节之和)。
int num = 10; num 的类型是int
int arr[10] = {0}; 数据的类型是int [10]
int num = 10;
int arr[10] = { 0 };
printf("%d\n", sizeof(arr));
printf("%d\n", sizeof(int[10]));
printf("%d\n", sizeof(int[5]));
输出结果:
No5
#include <stdio.h>
int main()
{
char str[] = "hello bit";
printf("%d %d\n", sizeof(str), strlen(str));
}
sizeof 是一个操作符
是用来计算变量所占内存空间的大小,不关注内存中存放的具体内容
但是是字节
整型 int 4字节
长整型 long 4字节
字符型 char 1字节
单精度 float 4字节
双精度 double 8字节
长双精度 long double 8字节
换算关系:
1GB=1024MB
1MB=1024KB
1KB=1024Byte
1Byte=8Bit
strlen
strlen() 是一个库函数,是专门求字符串长度的,只能针对字符串
从参数给定的地址向后一直找\0,统计\0之前出现的字符的个数
No6
C
No7
D
No8
B
No9 编程题
#include <stdio.h>
int main() {
int arr[] = {1, 2, 3, 4, 5}; // 数组A
int arr1[] = {6, 7, 8, 9, 10}; // 数组B
int i = 0;
// 正确计算数组元素个数(假设两个数组大小相同)
int sz = sizeof(arr) / sizeof(arr[0]); // sz = 5
int tmp = 0;
for (i = 0; i < sz; i++) {
// 交换对应位置的元素
tmp = arr[i];
arr[i] = arr1[i];
arr1[i] = tmp;
}
// 打印交换后的数组A
for (i = 0; i < sz; i++) {
printf("%d ", arr[i]); // 输出:6 7 8 9 10
}
return 0;
}
No10
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
void init(int arr[], int sz)
{
int i = 0;
for (i = 0;i < sz;i++)
{
arr[i] = 0;
}
}
void print(int arr[], int sz)
{
int i = 0;
for (i = 0; i < sz; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
}
void reverse(int arr[], int sz)
{
int i = 0;
int j = sz - 1;
while (i < j)
{
int tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
i++;
j--;
}
}
int main()
{
int arr[] = { 1,2,3,4,5,6 };
int sz = sizeof(arr) / sizeof(arr[0]);
reverse(arr, sz);
print(arr, sz);
init(arr, sz);
print(arr, sz);
return 0;
}
代码结构
知识点:有些编译器支持变长数组,有些不支持
本网站原创文章版权归何大锤的狂飙日记所有。发布者:何大锤,转转请注明出处:何大锤的博客