strlen (&arr) --——--&arr表示整个数组的地址,为什么也不行呢?提示:" const char *" 类型 的 实参 与 " char *" 类型 的 形参不兼容, 函数 形参 为 char *的 类型 直接写入字符串报错。 于是我抱着试一试的心态到linux平台上用gcc运行了一下,请看结果:[bsk@localhost test1]$ gcc test.c ...
在64位系统中,一个指针变量的sizeof值通常为8 (以字节为单位)。 也就是说,不管你是int*、char*、float*、doudle* 等等。只要你是sizeof 一个指针,不管指针所指的对象是什么,得到的结果不是4就是8,这取决于你使用的计算机是32位还是64为操作系统。 下面是一道经典的笔试题: 解析:(单位为字节) sizeof(arr...
在64位系统中,一个指针变量的sizeof值通常为8 (以字节为单位)。 也就是说,不管你是int*、char*、float*、doudle* 等等。只要你是sizeof 一个指针,不管指针所指的对象是什么,得到的结果不是4就是8,这取决于你使用的计算机是32位还是64为操作系统。 下面是一道经典的笔试题: 解析:(单位为字节) sizeof(arr...
void*p=sin;//doublesin(doublex); 因为名称后不是括号,相关的宏不会被展开,需要特别注意哟~ 另外,实参类型与形参类型不兼容也会导致未定义的行为,所以MISRA等知名规范要求禁用 tgmath.h。 到了2011 年,C 标准开放了_Generic关键字,使函数重载得到了语言层面的支持,但这种重载与 C++ 的重载又不相同。 试想这...
先不说形参实参一样不一样,先说函数声明“必须与原型一致”。如果有定义float a(int x,int y){...},那么声明必须是float a(int x,int y);或float a(int,int );,否则编译器就找不到这个函数了。但声明时形参变量名是可有可无的,而变量类型名是必要的…… 结果...
3. 变量赋值、运算时显示类型不匹配(例如:int a=2;float b=2.021;当使a=b时,会显示类型不兼容,会导致数据丢失)。5、函数参数不匹配(了解函数的作用,需要传什么参数,对照形参传实参)6、头文件未包含(有时候你在别处看见一个好玩的函数,你自己拿来用,发现此函数竟然未定义,oh~糟糕!你要知道此...
型 这意味着任何对foo的调用如果 * 不 * 传递两个类型为long和double*的参数都是无效的,并且具有未...
void printstr(char*str) { cout << str << endl; } void test() { printstr("string"); //"const char *" 类型的实参与 "char *" 类型的形参不兼容 //char*str改为const char*str } 变量的初始化 在C++中变量的初始化和C语言相比有了更多的“奇葩操作” ...
1、引号、逗号、分号错误(中文英文逗号、引号等是不同的,注意切换输入法)2、变量未定义(这个不用多说...)3、变量赋值、运算时显示类型不匹配(如:int a=2;float b=2.021;当使a=b时,会显示类型不兼容,会导致数据丢失。)4、循环条件判断后面是跟着{大括号},不要加上分号,否则循环不完整起不到...
型 这意味着任何对foo的调用如果 * 不 * 传递两个类型为long和double*的参数都是无效的,并且具有未...