C语言复习笔记1

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;
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值