分享我的#c语言学习之路

笔记2:

//对于C语言中不安全的一些函数,如scanf,strcpy,strlen...当用其他编译器编译时,在源文件的第一行
#define _CRT_SECURE_NO_WARINGS 1 //就不会出现上述的警告或错误

1.字面常量:3; 100; 3.14;
2.const--常属性
eg: const int num=4;//说明这个num变量只可以等于4,不能被改变,否则无法运行
/*....程序.....*/屏蔽一段代码

int main()
{
int n=10;
int arr[n]={0};
}//无法运行成功,在括号下第一行应输入一个常量表达式,即[n]中的n必须是一个常量;
//如果在在括号下第一行的最前面加一个const,也无法运行成功,因为n是变量,但是具有常属性,只能说n是常变量

3.#define 定义的标识符常量
//eg: #define a 10 定义在一个程序中的a的值为10的常量

4.枚举常量
//枚举关键字--enum
eg:性别:男,女,保密
【enum Sex
{MALE,
FEMALE,
SECRET};//大括号的最后的分号不能少
//MALE,FEMALE,SECRET-这三个为枚举常量
int main()
{
  printf("%d\n",MALE);//默认值为0;
  printf("%d\n",FEMALE);//默认值为1;
  printf("%d\n",SECRET);//默认值为2;
  return 0;
}】
日常用法:
enum Sex
{MALE,FEMALE,SCRET};
int mai()
{
  enum Sex sex=三选一;//sex是个变量,可以改的,比如改成a=三选一
  return 0;
}


//%s--打印字符串
int main()
{
 char arr1[]="abcd";//用数组存放字符串,这个数组里面实际上有'a','b','c','d','\0',但是打印结果不显示出来最后的字符('\0'),这个表示字符串的结束标志,不算字符串的内容,值为0
 char arr2[]={'a','b','c','d',0或者'\0'}
 printf("%s\n",arr1);
 return 0;
}//打印出来的结果都为 abcd
//每个字符都对应一个值(ASCII编码)eg:'a'的码值为97 A-65

strlen--计算字符串长度
int main()
{
 char arr1[]="abcd";//用数组存放字符串,这个数组里面实际上有'a','b','c','d','\0',但是打印结果不显示出来最后的字符('\0'),这个表示字符串的结束标志,不算字符串的内容,值为0
 char arr2[]={'a','b','c','d',0或者'\0'}
 printf("%d\n",strlen(arr1));//4
 printf("%d\n",strlen(arr2));//如果没有输入0或\0,则输出结果为随机值,直到遇到\0(转义字符)
 return 0;
}
\t--水平制表符
??+其他字符---->表示三字母词
//eg:??)---]
如果让问号(?)转变原来的意思,则需在前面加(\)
斜杠(\)可以用来转义(\)
eg:printf("c:\test\32\test.c")//如果要想最后结果输出为c:\test\32\test.c,则需在'\'前面加一个'\'。

   当使用strlen函数时,需要输入头文件#include <string.h>
int main()
{printf("%d\n",strlen("c:\test\32\test.c"))}//结果为13,\与其后面一位字母,构成转义字符,为一个字符
//而\32为一个字符,3和2表示为两个8进制数字,32作为8进制代表的那个十进制数字,作为ASCII码的值对应的那个字符
32--转换成十进制为3*8+2=26作为ASCII的码值所对应的那个字符(→)
\ddd---表示1-3个八进制的数字。eg:\130 X
\xdd---dd表示两个十六进制数字。eg:\x30 0


选择语句
int main()
{
int input=0;
printf("你想赚大钱吗?(1/0): ");
scanf("%d",&input);//1或者0
if(input==1)
    printf("想\n");
else
    printf("不想\n");
return 0;
}

循环语句
//1.while 循环
int main()
{
  int line=0;
  printf("加入比特\n");
  while(line<20000)
    {
        printf("我要敲代码:%d\n",line);
        line++;
    }
  if(line>=20000)
      printf("好offer\n");
  return 0;
}


函数应用
eg:
#include <stdio.h>
int add(int x,int y)//函数前面的int-函数返回的类型;add为函数名;()内的为函数的参数
{
int z=x+y;
return z;
}//{}内的叫函数体
int main()
{
 int a=10;int b=20;
 int sum=0;
 int c=30;int d=40;
 sum=add(a,b);
 sum=(c,d);
 printf("sum= %d\n",sum);
 return 0;
}

数组:一组相同类型元素的集合
int main()
{
    int i=0;
    int R[6]={1,2,3,4,5,6}//R[0]=1,R[1]=2....R[5]=6;
    while(i<6)
    {printf("%d\n",R[i]);
    i++;}
    return 0;
}

操作符
a=5%2//取模 1
>> 代表右移 //移动(2进制)位操作符
<< 代表左移
int main()
{
int a=1;//整型占4个字节,32个bit,所以二进制表示为0000000000000000000000000000001
int b=a<<1;//代表左移一个二进制位
printf("%d\n",b);//则b的2进制表示为00000000000000000000000000000010;用十进制表示为2
return 0;
}

位操作符//2进制位操作
& 按位与
| 按位或
^ 按位异或//对应的二进制数相同则为0,不同为1;

int main()
{
int a=3;//011
int b=5;//101
int c=a&b;//可以理解为与非门,所以结果为001
printf("%d\n",c);//c=1
return 0;
}

复合赋值操作符
+=,-=,*=,/=,&=,|=,>>=,<<=,%=;
eg: a=a+2 可变为 a+=2;

单目操作符:只有一个操作数
eg: !a(若a为非0值,则!a=0;若a为0,则!a=1;)
双目操作符:有两个操作数 //a+b
三目操作符:有三个操作数

sizeof--计算的是变量或类型所占空间的大小//当计算变量名的大小时,可省略括号;但是计算类型时,不能省略括号
eg:
int main()
{
  int a=10;
  printf("%d\n",sizeof(a));//4字节
  printf("%d\n",sizeof(int));//4字节
  return 0;
}

int main()
{
int sz=0;
int arr[10]={0};//数组中的是个元素全为0;
printf("%d\n",sizaeof(arr));//求整个数组的大小--4(个字节)*10(个元素)
sz=sizeof(arr)/sizeof(arr[0]);//求数组的个数(40字节/4字节)
printf("sz = %d\n",sz);//sz=10;
return 0;
}
相信你自己,一定会成功,一起加油吧!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fighting787

一起加油,一起成功!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值