黑马程序员--IOS入学学习--3-函数及内存剖析

来源:互联网 发布:google翻译 for mac 编辑:程序博客网 时间:2024/04/27 16:06
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

本篇博客学习C语言的第三篇记录博客,主要包括:函数、内存剖析,主要记录内容如下(只记录新学习到的知识):

一、函数

1、函数体内部不能定义与函数形参一样的变量,编译的时候会报错(重复定义);

2、如果是基本数据类型作为函数形参,形参实参之间纯粹是值传递,修改函数内部形参的值并不会影响函数外实参的值;

3、如果不明确声明函数的返回值类型,默认为int类型;就算明确了返回值类型,也可以不返回值;

4、C语言中,默认情况下不允许有函数的名称一样,并且函数不能够被嵌套定义;

5、函数不能够被重复定义,但是可以被重复声明;如果有函数的声明没有函数的定义,编译可以通过(因为编译的时候只检查代码的语法是否正确),但是链接的时候会报错(链接的时候会检查函数是否被定义);

6、include语句:作用是拷贝引用文件的所有内容到#include所在的位置,自定义文件用"",系统自带文件用<>;

二、内存剖析:

1、十进制、二进制、八进制、十六进制的赋值方式及输出方式请参照下述代码及表格:

#include <stdio.h>int main(){    //默认为十进制    int number1 = 12;    //0b开头代表为二进制    int number2 = 0b1100;    //0开头为八进制    int number3 = 014;    //0x或者0X开头为十六进制    int number4 = 0xc;    //%d或者i%会将后面变量的值转换为十进制输出出来、%o代表八进制、%x代表十六进制    printf("%d\n%d\n%d\n%d\n", number1, number2, number3, number4);    return 0;}

2、内存是以字节为单位存在的,内存字节的地址是16进制;

3、 四个修饰变量类型的类型说明符:

short(一般只修饰int):会将int的字节缩短为2位,printf输出时依然用%d作为占位符,short int 可以用short代替;

long(一般只修饰int):将int的字节扩充为8位,printf输出时用%ld作为占位符,long int也可以用long代替 ,为了区别long与普通int,在赋值时通常会在值的最后加l作为区分;

signed(一般只修饰int):代表有符号整数(正数、负数、0),与int一样,首位默认为符号位,最大值为2的31次方-1;

unsigned(一般只修饰int):代表无符号整数(正数、0),即在内存中int的存储没有符号位,最大值为2的32次方-1;

4、按位异或 ^ 的规律:

1.>相同数值进行异或,结果为0,例如9^9=0;

2.>多个整数进行异或的结果与顺序无关,例如:9^5^6=9^6^5;

3.>任何数值与0异或,结果还是原数值;

4.>a^b^a=b;

5、重点课后习题:

/* 编写一个函数,用来输出整数在内存中的二进制形式 */#include <stdio.h>int main(){    void printBrinary(int number);    int a;    scanf("%d", &a);    printBrinary(a);    return 0;}void printBrinary(int number){    for (int i = sizeof(number)*8 - 1; i >= 0; i--) {        if(i % 4 != 0 || i == 31)        {            printf("%d", number >> i & 1);        }        else        {            printf("%d ", number >> i & 1);        }    }}



0 0
原创粉丝点击