标签:符号 数组 一段 turn ace mes 总结 style 个数
关于sizeof,我们知道sizeof并不是一个函数,尽管通常我们会用sizeof()用法(这是c语言的坑),在此关于sizeof的一些关键不被认知的进行一下总结:
1 # include "iostream" 2 int array[]{23, 34, 12, 17, 204, 99, 16}; 3 #define TOTAL_ele (sizeof(array)/sizeof(array[0])) 4 int main() 5 { 6 using namespace std; 7 int d = -1; 8 cout << " the return value of array is:" << sizeof(array) << endl; 9 cout << "the return value of array[0] is:" << sizeof(array[0]) << endl; 10 if (d < TOTAL_ele - 2) 11 cout << "无fuck说" << endl; 12 system("pause"); 13 return 0; 14 15 }
上面一段c++代码,注意几点:
sizeof(数组名),返回的是:元素个数×类型字节数(比如这里是28),尽管我们知道数组名表示一个地址。
sizeof()的返回值,准确的说叫做测量值,是个无符号数,即unsigned 类型,因此上述 if(d<TOTAL_ele-2)并不为逻辑真,因为左右类型不匹配,实际上,会将左侧的int型的d= -1转化成一个4个字节的无符号数-1。
因此在此强调一个概念:C语言写程序的时候一定要注意类型的匹配
标签:符号 数组 一段 turn ace mes 总结 style 个数
原文地址:https://www.cnblogs.com/shaonianpi/p/9710735.html