1.不同数据类型所占字节数。
bit 01二进制的比特位
byte 字节 =8 bit 比特
之后的单位都是以1024为倍数
#include<stdio.h>
#include<unistd.h>
int main()
{
  printf("sizeof(char)=%d\n",sizeof(char));
  printf("sizeof(short)=%d\n",sizeof(short));
  printf("sizeof(int)=%d\n",sizeof(int));
  printf("sizeof(long)=%d\n",sizeof(long));
  printf("sizeof(long long)=%d\n",sizeof(long long));
  printf("sizeof(float)=%d\n",sizeof(float));
  printf("sizeof(double)=%d\n",sizeof(double));
  
  return 0;
}
 

2.当局部变量和全局变量重名,局部变量优先
#include<stdio.h>
#include<unistd.h>
int a=100;
int main()
{
  int a=10;
  printf("a=%d\n",a);
  return 0;
}
 

3.变量与常量,变量的生命周期
枚举默认从0开始,可以赋初值。
#include<stdio.h>
#include<unistd.h>
#define MAX 100//宏常量
enum Sex
{
  MALE=5,//枚举默认从0开始,可以赋初值
  FEMALE,
  SECRET
};//枚举常量
struct Stu
{};
int a=100;
int main()
{
  {
    int a=10;
  }
  3.14;//字面常量
  100;//字面常量
  //const 修饰的常变量
  const int ca = 10;
  const char cc = 'W';
  
  int num =10;
  num =20;
  //int arr[ca]={1,2,3};//C中无法使用
  int b = MAX;
  int arr[MAX]={0};
  printf("num = %d\n",num);
  printf("a=%d\n",a);
  enum Sex s1=MALE;
  enum Sex s2= FEMALE;
  printf("MALE=%d\n",MALE);
  printf("FEMALE=%d\n",FEMALE);
  printf("SECRET=%d\n",SECRET);
  return 0;
}
 

4.字符串,gcc好像默认会添加\0?
gcc好像存在一定优化,打印sizeof结果不同,打印strlen和内容时相同。
#include<stdio.h>
#include<unistd.h>
#include<string.h>
int main()
{
  char arr[] = "abcdef";//字符数组,默认隐含\0
  char arr1[] = {'a','b','c'};//不包含\0 gcc存在优化,对于strlen和打印内容时结果相同,打印sizeof时结果不同
  char arr2[] = "abc";//包含\0
  printf("sizeof(arr1)=%d\n",sizeof(arr1));
  printf("sizeof(arr2)=%d\n",sizeof(arr2));
  printf("strlen(arr1)=%d\n",strlen(arr1));
  printf("strlen(arr2)=%d\n",strlen(arr2));
  printf("%s\n",arr1);
  printf("%s\n",arr2);
  return 0;
}
 

5.转义字符 以\开头,出现不想要的转义字符时需要在前面多加一个\
转义的使用有两个方面,一个是转为字面意思,一个是去除转义
#include<stdio.h>
#include<string.h>
#include<string.h>
int main()
{
  printf("%s\n","c:\test\55\test.c");
  printf("%s\n","c:\\test\\55\\test.c");
  printf("(are you ok??)\n");
  printf("%c\n",'\'');
  printf("%s\n","\"");
  printf("\a\a\a\a\a\a\a\a\a");
  return 0;
}
 

 ascll码与转义字符
 \ddd 一到三个八进制找到10进制ascll码并对应为字符,\xdd一到两个十六进制,转化为对应的十进制ascll码并对应为字符。
#include<stdio.h>
#include<unistd.h>
#include<string.h>
int main()
{
  printf("%c\n",'\55');
  printf("%c\n",'\x35');
  return 0;
}
 
 



















