如果要在 QT 中使用第三方库,需要将相关库文件路径写入项目 pro 文件内,有两种方式:GUI 对话框添加或直接编辑 pro 文件。

GUI 添加

使用 GUI 添加的好处是比较直观,使用鼠标点击即可。

右键项目名称,点击 add library:
1.jpg

阅读全文


在 c++ 中,一个 Macro 就是一段代码的聚合。使用这个 macro 名称就代表着对应的代码段。

有两种常见的 macro:object 形式,function 形式。可以定义任意有效的字符作为 macro 名称,甚至是 c 关键词。

阅读全文


有如下代码:

int main()
{
    char *s;
    s = "hello";

    cout << *s << endl;
    cout << s << endl;

    return 0;
}

//OUTPUT:
//h
//hello

首先定义了一个指针,然后给指针赋值为一个字符串。看起来以上写法有错误,s 指针是一个地址,为什么给它赋值一个字符串?

因为在 c++ 中字符串类似于我们提到的数组,使用数组名就表示第一个数组元素的地址。例如:

int main()
{
    int arr[] = {1, 3};
    int *p = arr;

    cout << *p << endl;
    cout << *(p+1) << endl;

    return 0;
}

//OUTPUT:
//1
//3

同样在字符串中,s = "hello" 表示将首字母 h 的地址赋给指针。


关于 function 的基础教程参考:C++ 入门教程之四 -- Functions

当 function 的传入参数为数组时,如果我们想要得到数组元素个数可能会这样写:

void testFunc(int arr[]) {
    int count = sizeof(arr)/sizeof(arr[0]);
}

int main()
{
    int arr[] = {1, 3, 6, 8};
    cout << testFunc(arr) << endl;

    return 0;
}

sizeof function 可以返回数据占用内存空间的大小。所以用整个 arr 大小除以第一个元素大小可以得到数组元素个数。

但是测试会发现以上得到的 count 值并不是 arr 数组元素个数 4 而是 2。这是因为当 function 传入数组数据时,会自动将其转换为 pointer 指针类型。这时候使用 sizeof() 得到的不是 arr 数据所在地址的内存大小,而是这个指向 arr 数组的指针所占用内存大小。

阅读全文