c++零散小知识点

一、函数

    1.sizeof:

      在int main()中是a[n]数组指针,sizeof(a)返回整个数组长度,在自定义函数中例如(int foo(int a[])),a[]是数组的指针,sizeof(a)只是指针的大小。

c++零散小知识点_第1张图片

     2.inline(内联函数)

       inline void foo(int b[])编译器不调用,出现该函数的替换成函数体内容。

     3.数组传递

#include
using namespace std;
void foo(int a=1,int b=10){
    cout<
#include
using namespace std;
void foo(int a=1,int b)//不可以只给a赋值
{
    cout<

    4.多维数组形参的写法

      多维数组中,除了第一维之外,其余维度的大小必须指定。

二、类与结构体

      1.类与结构体是类似的,作用是一样的,不同点在于类默认是private,结构体默认是public。

#include
using namespace std;
class Person{
    private:
        int age,height;
        double money;
        string books[100];
    public:
        string name;
        void say(){
            cout<<"I'm "<

       2.快速赋值方法

#include
using namespace std;
struct person
{
    int age,height;
    double money;
    person(){}
    person(int _age,int _height):age(_age),height(_height){}
    person(int _age,int _height,double _money):age(_age),height(_height),money(_money){}
};
    
int main(){
    person p={18,180};
    cout<

      3.链表

      (1)链表的实现

#include
using namespace std;
struct Node
{
    int val;
    Node* next;
    Node(int_val):val(_val),next(NULL){}
};
int main(){
    //Node node=Node(1);    
    Node* p=new Node(1);//1传给int_val    
    auto q=new Node(2);//auto可以自动判断变量的类型  
    auto o=new Node(3);
    //p->next=p;p指向自己,p是指针的话就要用->来调用,p不是指针的话就用p.next来调用   
    p->next=q;
    q->next=o;
    Node* head=p;//头节点:第一个节点的地址而不是它的值
    //链表的遍历方式
    for(Node* i=head;i;i=i->next)
        cout<val<next=head;
    head=u;
    //删除节点(在遍历时遍历不到这个点)
    head->next=p->next;
    return 0;
}

你可能感兴趣的:(c++,链表,开发语言)