【C语言】基本认识查漏补缺

1.基本类型的大小

2.sizeof计算变量时可以不用括号,计算类型必须用括号

int a = 10;

sizeof a;  //可以

sizeof int;  //不可以

sizeof(int);  //可以

3.字符串

char arr[] = "abc";  //数组里存放了'a'、'b'、'c'、'/0'四个字符,最后一个结束标志不会算在字符串长度中

4.转义字符占一个长度

strlen(“c:\test\test.txt”);  //输出14

转义字符:\32  32是两个八进制数,将32转为十进制数后对应的asc码代表的字符

                   \x32  有x表示32是两个十六进制数 

5.移位操作符<< >>,是整体向左移动或向右移动

int a = 1;

int b = a << 1;  //将a整体向左移一位后得到的数赋给b,但a自身不改变 

6.取反运算符,二进制按位取反 ~

int a = 0;

int b = ~a;  //b输出为-1

因为:

0000000...  a的机器数

取反后:

11111111... b的机器数,第一位表明b是负数,而负数是以补码形式存在计算机中,输出的b为原码,所以b输出为-1

7.后++是先算a再+1:

int a = 10;

int b = a++;  //b输出10,a输出11

8.可以宏定义一个函数:

#define MAX(X, Y) (X>Y?X:Y)

int a = 10;

int b = 20;

int max = MAX(a, b);  //输出20 

9.一个内存单元是一个字节

int a = 10;

printf("%p", &a);  //%p专门打印地址的格式

10.32位机的一个地址有4个字节大小,所以指针变量的大小都是4个字节。而64位机的地址是8个字节大小 

11.

struct Book

{

        char name[20];

        int num;

}

struct Book b1 = {"设计书", 55};

b1.name = "C语言";  //错误,因为name是字符数组

strcpy(b1.name, "C语言");  //用字符串拷贝函数

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值