C语言中unsigned int的最大数

C语言请问如何输出unsigned int的最大数?
以下代码正确吗?


#include<stdio.h>
int main(){
    unsigned int a = 1;
    while (++a != 0)
    {
        
    }
    printf("%d\n",a);
}

供参考:

#include <stdio.h>
int main()
{
    unsigned int a = 1, b = 0;
    while (a > 0)  a++;
    printf("unsigned int数据类型最大数是:%u\n", a - 1);

    unsigned int n = a - 1;
    do{
        n = n / 10;
        b++;
    } while (n > 0);
    printf("unsigned int数据类型最大数共有%d位。\n", b);
    return 0;
}

 
#include<stdio.h>
int main(){
    unsigned int a = 1;
    while (a+1 != 0)
    {
        
    }
    printf("%d\n",a);
}

请问以下代码正确吗?

#include<stdio.h>
int main(){
    int a = 1;
    while (a != -1)
    {
        a++;
    }
    printf("%u\n",a);
}

```