我正在学习如何动态加载DLL,但我不明白的是这一行
typedef void (*FunctionFunc)();
Run Code Online (Sandbox Code Playgroud)
我有几个问题.如果有人能够回答他们,我将不胜感激.
typedef用?void应该有不是一个函数名还是什么?它看起来像一个匿名函数.所以我此刻很困惑; 你能为我澄清一下吗?
为什么以下工作?
void foo() {
cout << "Foo to you too!\n";
};
int main() {
void (*p1_foo)() = foo;
void (*p2_foo)() = *foo;
void (*p3_foo)() = &foo;
void (*p4_foo)() = *&foo;
void (*p5_foo)() = &*foo;
void (*p6_foo)() = **foo;
void (*p7_foo)() = **********************foo;
(*p1_foo)();
(*p2_foo)();
(*p3_foo)();
(*p4_foo)();
(*p5_foo)();
(*p6_foo)();
(*p7_foo)();
}
Run Code Online (Sandbox Code Playgroud) #include <stdio.h>
#define N 10
char str2[N]={"Hello"};
int main(){
printf("sizeof(str2): %d bytes\n", sizeof(str2));
printf("sizeof(&str2): %d bytes\n", sizeof(&str2));
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出:
sizeof(str2): 10 bytes
sizeof(&str2): 4 bytes
Run Code Online (Sandbox Code Playgroud)
我知道str2单独是数组中第一个元素的地址str2.并且当str2它的参数何时sizeof返回整个数组str2的大小.
另外,&str2也是arr中第一个元素的地址,str2但是来自不同的类型(char (*)[N]==指向数组的指针).但是&str2当它是一个论证时,它是如何表现的sizeof?
有点像菜鸟所以不要在这里杀了我.
以下代码之间有什么区别?
int *p; //As i understand, it creates a pointer to an variable of size int.
int *p[100]; //Don't really know what this is.
int (*p)[100]; // I have come to understand that this is a pointer to an array.
Run Code Online (Sandbox Code Playgroud) 我从未读过任何有关取消引用数组(如指针)的内容,我相信它不应该起作用。但以下代码确实可以使用 QT Creator 和 g++ 4.8:
int ar[9]{1,2,3,4,5,6,7,8,9};
cout << *ar << endl; //prints the first element of ar
Run Code Online (Sandbox Code Playgroud)
这是正确的行为还是只是编译器修复了代码?
我想打印存储变量的位置.我谷歌它,我发现了这个:
int *p;
printf("memory location of ptr: %p\n", (void *)p);
Run Code Online (Sandbox Code Playgroud)
如果我写这个,是不是?
printf("memory location of ptr: %p\n", &p);
Run Code Online (Sandbox Code Playgroud)
我编译它,我没有得到任何错误或警告,但如果我把它们都放在程序中,这两个语句不会返回相同的值.
我正在阅读2个坐标的用户输入,如下所示:
输入坐标:10 5
我希望能够在10中读取行,将5作为列.
这就是我所拥有的.
char coord[5];
...
cout << "Enter a coord: ";
cin.getline(coord,sizeof(coord));
row = atoi(coord[0]);
Run Code Online (Sandbox Code Playgroud)
所以代码在atoi()上给我一个错误,如果用户输入一个像10个字符的数字无法真正从索引读取它,你们会怎么做呢?谢谢.